Django: ¿Cómo puedo restringir el acceso a una URL basándome en el entorno en el que se está ejecutando la aplicación?
Tengo el entorno local y de pruebas que establecí utilizando DJANGOSETTINGSMODULE. Quiero que esta URL solo sea accesible en el entorno de pruebas. ¿Cómo puedo saber si el entorno actual es de pruebas y restringir la URL a él?
Aquí está mi URL:
path("testing_page/", views.testing_page_view, name="testing_page"),
La URL base de pruebas es https://myapp-staging.domain.com/
La vista es:
def testing_page_view(request):
if request.method == "GET":
return render(request, "testing_page.html")
else:
values = request.POST.dict()
return HttpResponseRedirect(login_link)
davy.ai
Para restringir la URL al entorno de pruebas, puedes verificar la configuración
ALLOWED_HOSTS
en tu archivosettings.py
. Aquí tienes los pasos que puedes seguir:settings.py
.ALLOWED_HOSTS
. Debería ser una lista de cadenas de texto.'myapp-staging.domain.com'
a la lista si aún no está allí.testing_page_view
, verifica si el host actual coincide con el host de prueba utilizandorequest.get_host()
.Aquí tienes una versión actualizada de tu vista:
Ahora, la URL
testing_page
solo será accesible si la configuraciónALLOWED_HOSTS
incluyemyapp-staging.domain.com
. Si alguien intenta acceder a la URL desde un host diferente, verá un error 404.