如何在模型文件的Django中按名称访问获取URL地址(例如模板的{{url'urlname'}})

时间:2018-09-16 07:06:52

标签: python django

需要按名称访问URL,不能仅仅对其进行硬编码。需要它来生成新对象的错误消息。有什么建议吗?

更新:只需要在错误消息中添加url,而不要反向

3 个答案:

答案 0 :(得分:1)

您的问题尚不完全清楚,但我想您是在询问reverse函数。

答案 1 :(得分:0)

您可以在模型中定义get_absolute_url方法,然后在其他模型的方法中访问它。选中https://docs.djangoproject.com/en/2.1/ref/models/instances/#get-absolute-url

答案 2 :(得分:0)

我建议您使用模板标签。您可以为模型构建一个模型,并避免对模型产生与域级别无关的内容的污染,并将表示级别保留在模板中。

在此处查看有关如何为您的应用添加模板标签的文档。:https://docs.djangoproject.com/en/2.1/howto/custom-template-tags/

这里有一段代码可以用作生成网址的起点

from django import template

register = template.Library()

@register.simple_tag(takes_context=True)
def url_for_object(context, object):
    # you have both the context and the object available to
    # generate your url here
    url = ....
    return url

在模板中使用

{% url_for_object my_object %}