modelserializer get_object_or_404 framework decorators create django django-rest-framework

get_object_or_404 - modelserializer django rest framework



Los enlaces de paginaciĆ³n de Django REST Framework no usan HTTPS (1)

Estoy configurando la paginación para un determinado punto final DRF que funciona bien; sin embargo, cuando se implementa en mi servidor, que usa HTTPS, los enlaces a las páginas siguientes y anteriores se forman con http:// lugar de https:// . Esto hace que el navegador bloquee las solicitudes de páginas siguientes / anteriores.

Comprobé por segunda vez que se realizó la solicitud inicial, con HTTPS, y la segunda respuesta a esta pregunta indica que debe usar HTTPS en las URL formadas, ya que la solicitud se realizó a través de HTTPS.

La primera respuesta a la misma pregunta tampoco ayudó: agregué la línea X-Forwarded-Proto a mi configuración de nginx y volví a cargar, sin éxito.

El DRF menciona que reverse () debería comportarse como la base inversa de Django, sin embargo, parece bastante claro que la solicitud inicial es HTTPS, mientras que la URL devuelta es HTTP.

Aquí hay un par de capturas de pantalla que muestran la solicitud inicial ( https://<domain>.com/api/leaderboard/ ):

Con la respuesta que contiene a next: http://<domain>.com/api/leaderboard/?page=2 ):

Pensé que sería una configuración simple, pero no he podido encontrar nada después de buscar este sitio y el sitio de DRF.

Esta es mi configuración nginx:

location / { # proxy_pass http://127.0.0.1:9900; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; add_header P3P ''CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"''; root /opt/app/client/dist; index index.html index.htm; }

Esta pregunta contiene una respuesta bastante detallada, pero finalmente dice que las URL se forman con el mismo protocolo que la solicitud, lo que no parece ser el caso aquí. ¿Debo configurar ese Django SECURE_PROXY_SSL_HEADER? No estaba seguro, dada la advertencia de que es potencialmente inseguro.


¿Debo configurar ese Django SECURE_PROXY_SSL_HEADER? No estaba seguro, dada la advertencia de que es potencialmente inseguro.

Si tu puedes. Sin embargo, debes preocuparte por lo que estás haciendo. En particular, asegúrate de dejar caer el X-Forwarded-Proto desde el exterior.