django templates - tutorial - ¿Cómo obtengo el nombre del servidor en Django para una url completa?
render django (1)
Utilice la aplicación de sitios:
Site.objects.get_current().domain
Ejemplo directo de la documentación:
from django.contrib.sites.models import Site
from django.core.mail import send_mail
def register_for_newsletter(request):
# Check form values, etc., and subscribe the user.
# ...
current_site = Site.objects.get_current()
send_mail(''Thanks for subscribing to %s alerts'' % current_site.name,
''Thanks for your subscription. We appreciate it./n/n-The %s team.'' % current_site.name,
''editor@%s'' % current_site.domain,
[user.email])
# ...
Estoy usando plantillas django para crear un correo electrónico. Hago algo como esto:
msg_html = render_to_string(''email/%s.html'' % template_name, context)
msg = EmailMultiAlternatives(subject, msg_text, from_email, to_list)
msg.attach_alternative(msg_html, "text/html")
msg.content_subtype = "html"
msg.send()
Mi plantilla usa patrones de url nombrados, así: {% url url_name parámetro%}
Lo que funciona bien, excepto que generará una URL relativa, como: / app_name / url_node / parameters
Por lo general, eso es suficiente, pero como es un correo electrónico, realmente necesito que sea una url completa, con el nombre del servidor precedido, como: http://localhost:8000/app_name/url_node/parameter .
¿Cómo puedo hacer esto? ¿Cómo obtengo dinámicamente el nombre del servidor? (No quiero codificarlo con seguridad).
Otra forma de preguntar: ¿cómo obtengo HttpServletRequest.getContextPath () ala Java, pero en cambio en Django / Python?
Gracias