Django - Как я могу ограничить доступ к url на основе среды, в которой запущено приложение

У меня есть локальная среда и среда постановки, которые я устанавливаю с помощью DJANGO_SETTINGS_MODULE. Я хочу, чтобы этот URL был доступен только в среде постановки. Как я могу узнать, что текущей средой является staging и ограничить URL только ею. Вот мой URL

path("testing_page/", views.testing_page_view, name="testing_page"),

Урл базы хранения - https://myapp-staging.domain.com/

Вид -

def testing_page_view(request):
    if request.method == "GET":
        return render(request, "testing_page.html")
    else:
        values = request.POST.dict()
        return HttpResponseRedirect(login_link)

Сначала необходимо импортировать Django conf :

from django.conf import settings

Тогда в зависимости от вашего случая что-то вроде этого может сработать :

"https://myapp-staging.domain.com/" if settings.DEBUG else "https://myapp.domain.com/"

Предположим, что у вас есть отладка, которая отличается в staging и local, иначе просто добавьте новую переменную STAGING = TRUE

Ограничения доступа должны обрабатываться в вашем представлении. Например, вы можете вызвать исключение 404, если кто-то попытается получить доступ к пути в среде staging.

from djnago.conf import settings
from django.http import Http404

def testing_page_view(request):
    if settings.YOUR_ENVIRONMENT_VARIABLE == 'staging':
        #Here you can handle the case when the path is accessed in staging
        raise Http404('Only accessible in local environment')
    if request.method == "GET":
        return render(request, "testing_page.html")
    else:
        values = request.POST.dict()
        return HttpResponseRedirect(login_link)
Вернуться на верх