Django 将变量传递给 URL 标签

Posted

技术标签:

【中文标题】Django 将变量传递给 URL 标签【英文标题】:Django pass variable to URL tag 【发布时间】:2018-04-12 08:27:00 【问题描述】:

我正在使用 Django 1.11。我正在尝试从 UpdateView 添加指向 DeleteView 模板的链接。可能有比我尝试的方式更好的方法来实现这一点,但我是 Django 新手,所以我尝试的方式是使用 URL 指向myapp/<pk>/delete/

在我的模板中我有% url 'calendar_delete' pk=event_id %

在我的模型中我有

class Event(models.Model):
    event_id = models.AutoField(primary_key=True)

在我的网址中

url(r'^calendar/(?P<pk>\d+)/delete/$',views.CalendarDelete.as_view(),name='calendar_delete'),

使用上面的代码,模板不会呈现由于 NoReverseMatch 异常。 ''pk': ''' not found,所以它显然没有从模型中获取 event_id。当我在其中硬编码一个数字时,它会呈现,并且 URL 会将我定向到 DeleteView 模板。

谁能告诉我如何将&lt;pk&gt;/event_id 放入 URL 标记中?

&lt;pk&gt; 存在于 UpdateView 模板的 URL 中,我还尝试将其从 URL 中提取为变量并传递给 URL 标记。我可以提取 ok 但不能传入变量。

对此的任何帮助将不胜感激,包括关于使用更好的方法来获得预期结果的建议,而不是我要去的地方!干杯!

【问题讨论】:

你确定你在 event_id 中有价值吗? event_id 似乎为空。 我认为它可能没有正确传递。模型数据库中存在一个值,并且所有必填字段都在表单中正确呈现,所以我认为模型中的 event_id 没有问题 在一些可见的部分,尝试把 event_id 【参考方案1】:

UpdateView 中,您应该可以在模板中访问object

% url 'calendar_delete' pk=object.pk %

【讨论】:

太棒了!非常感谢

以上是关于Django 将变量传递给 URL 标签的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何使用模板变量和 url 标签

将 Javascript 变量传递给 Django 标签

Django - 将变量传递给同一脚本标签内的 javascript 文件

如何将文字字符串值传递给 django url 模板标签

将 Django 表单传递给模板标签

04_Django-模板变量/标签/过滤器/继承-url反向解析