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 模板。
谁能告诉我如何将<pk>/event_id
放入 URL 标记中?
<pk>
存在于 UpdateView 模板的 URL 中,我还尝试将其从 URL 中提取为变量并传递给 URL 标记。我可以提取 ok 但不能传入变量。
对此的任何帮助将不胜感激,包括关于使用更好的方法来获得预期结果的建议,而不是我要去的地方!干杯!
【问题讨论】:
你确定你在 event_id 中有价值吗? event_id 似乎为空。 我认为它可能没有正确传递。模型数据库中存在一个值,并且所有必填字段都在表单中正确呈现,所以我认为模型中的 event_id 没有问题 在一些可见的部分,尝试把 event_id 【参考方案1】:在UpdateView
中,您应该可以在模板中访问object
。
% url 'calendar_delete' pk=object.pk %
【讨论】:
太棒了!非常感谢以上是关于Django 将变量传递给 URL 标签的主要内容,如果未能解决你的问题,请参考以下文章