Ответ 1
Существуют разные решения. Напишите свой собственный templatetag и используйте HttpRequest.build_absolute_uri(location)
. Но по-другому, и немного взломанный.
<a href="{{ request.get_host }}{% url url_name %}">click here</a>
{% url url_name %}
дает относительное имя.
Как я могу сделать что-то вроде {% absolute_url url_name %}
, чтобы он возвращал url с базой (включая порт, если он есть)?
Существуют разные решения. Напишите свой собственный templatetag и используйте HttpRequest.build_absolute_uri(location)
. Но по-другому, и немного взломанный.
<a href="{{ request.get_host }}{% url url_name %}">click here</a>
<a href="{{request.build_absolute_uri}}">click here</a>
Попробуйте это :)
В шаблоне я использую это для печати абсолютного URL-адреса с протоколом, хостом и портом, если он присутствует:
<a href="{{ request.scheme }}://{{ request.get_host }}{% url url_name %}">link</a>
В Python я использую:
from django.core.urlresolvers import reverse
def do_something(request):
link = "{}://{}{}".format(request.scheme, request.get_host(), reverse('url_name', args=(some_arg1,)))