Django:打印网址,无需对网址进行硬编码

Jos*_*unt 8 python django

我可以/admin/manage/products/add在模板中打印出某个视图的网址吗?

这是我想为其创建链接的规则

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),
Run Code Online (Sandbox Code Playgroud)

我想在没有硬编码的情况下将/ manage/products/add添加到模板中.我怎样才能做到这一点?

编辑:我没有使用默认管理员(好吧,我是,但它是在另一个网址),这是我自己的

Har*_*mbe 15

您可以使用get_absolute_url,但这只适用于特定对象.由于您的对象尚未创建,因此在这种情况下不起作用.

您想使用命名的URL模式.这是一个快速介绍:

将urls.py中的行更改为:

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}, "create-product"),
Run Code Online (Sandbox Code Playgroud)

然后,在您的模板中使用它来显示URL:

{% url create-product %}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Django 1.5或更高版本,则需要:

{% url 'create-product' %}
Run Code Online (Sandbox Code Playgroud)

你可以用命名的URL模式做一些更强大的东西,它们非常方便.请注意,它们仅在开发版本(以及1.0)中.