Solución:
Por lo general, pongo algo como esto en settings.py
:
import socket
try:
HOSTNAME = socket.gethostname()
except:
HOSTNAME = 'localhost'
Si tiene una solicitud (por ejemplo, esto está dentro de una vista), puede mirar request.get_host()
que le da un nombre de ubicación completo (host y puerto), teniendo en cuenta los encabezados de proxy inverso, si los hubiera. Si no tiene una solicitud, debe configurar el nombre de host en algún lugar de su configuración. En muchos casos, solo mirar el nombre de host del sistema puede resultar ambiguo, siendo los hosts virtuales los más comunes.
Solo agregue a la respuesta de @ Tobu. Si tiene un objeto de solicitud y le gustaría conocer el protocolo (es decir, http / https), puede usar request.scheme (como sugiere el comentario de @ RyneEverett).
Alternativamente, puede hacer (respuesta original a continuación):
if request.is_secure():
protocol="https"
else:
protocol="http"
Porque is_secure () devuelve True
si la solicitud se realizó con HTTPS.