urls tutorial template django-templates

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