Django将变量传递给URL标记

时间:2017-10-31 08:24:16

标签: django django-urls django-class-based-views

我正在使用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':''}'找不到,所以它显然没有从模型中获取event_id。当我对其中的数字进行硬编码时,它将呈现,URL将指引我进入DeleteView模板。

有人可以建议我如何将<pk>/event_id纳入网址标记吗?

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

任何有关这方面的帮助都会非常感激,包括建议使用更好的方法来获得理想的结果,而不是我的目标!干杯!

1 个答案:

答案 0 :(得分:1)

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

{% url 'calendar_delete' pk=object.pk %}