需要按名称访问URL,不能仅仅对其进行硬编码。需要它来生成新对象的错误消息。有什么建议吗?
更新:只需要在错误消息中添加url,而不要反向
答案 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 %}