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

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

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),

我想在模板中添加 /manage/products/add 而不对其进行硬编码。我怎样才能做到这一点?

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

有帮助吗?

解决方案

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

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

将 urls.py 中的行更改为:

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

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

{% url create-product %}

如果你使用 Django 1.5 或更高版本,你需要这个:

{% url 'create-product' %}

您可以使用命名 URL 模式做一些更强大的事情,它们非常方便。请注意,它们仅处于开发版本(也是 1.0)。

其他提示

如果你使用 命名 url 模式 您可以在模板中执行以下操作

{% url create_object %}

创建 URL 的首选方法是添加 get_absolute_url 模型类的方法。您可以在那里对路径进行硬编码,这样您至少可以更接近遵循 KISS 哲学。

您可以进一步利用 permalink 装饰器根据 url 配置计算路径。

您可以在 django 文档中阅读更多内容 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top