{% url url_name %}表示相对名称.

我如何才能执行类似于{% absolute_url url_name %}的操作,使其返回带基的url(包括端口,如果存在)?

推荐答案

有不同的解决方案.编写您自己的模板标签并使用 HttpRequest.build_absolute_uri(location).但是另一种方式,而且有点老套.

<a href="{{ request.scheme }}://{{ request.get_host }}{% url url_name %}">click here</a>

编辑:所以我有点困惑,这仍然让我得票.我现在觉得这真的很骇人.写一个自己的模板标签变得容易多了,所以这里是你自己标签的例子.

from django import template
from django.urls import reverse

register = template.Library()

@register.simple_tag(takes_context=True)
def abs_url(context, view_name, *args, **kwargs):
    # Could add except for KeyError, if rendering the template 
    # without a request available.
    return context['request'].build_absolute_uri(
        reverse(view_name, args=args, kwargs=kwargs)
    )

@register.filter
def as_abs_url(path, request):
    return request.build_absolute_uri(path)

例如:

<a href='{% abs_url view_name obj.uuid %}'>

{% url view_name obj.uuid as view_url %}
<a href='{{ view_url|as_abs_url:request }}'>

Django相关问答推荐

在保存新实例之前删除一个实例(Django模型保存方法)

如何在Django上创建ManyToMany管理面板?

无法将关键字average_rating解析为字段

Urls.py中路径**kwargs的Django翻译?

Django中的DateTimeField到DateField

使用 Crispy Forms 时 Django 返回 'TemplateDoesNotExist'

Django 应用程序似乎无法识别相关名称?

Django ORM,按天分组

Django Calendar日历小部件?

Django rest-auth allauth 注册,带有邮箱、名字和姓氏,没有用户名

使用 lambda 作为属性的默认值时,Django 1.7.1 Makemigrations 失败

Django:从视图中添加 non_field_error?

Django表单集:首先需要?

Django:如何将数据保存到 ManyToManyField?

Django 应用程序运行良好,但收到 TEMPLATE_* 警告消息

Django 模型方法 - create_or_update

Django Admin - save_model 方法 - 如何检测字段是否已更改?

过滤查询参数

Django 在 css 文件中使用背景图像的方法

django-getlist()