【问题标题】:Django pass variable to URL tagDjango 将变量传递给 URL 标签
【发布时间】: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 }}

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


【解决方案1】:

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

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

【讨论】:

  • 太棒了!非常感谢
猜你喜欢
  • 2012-12-12
  • 2021-10-12
  • 2011-03-04
  • 2020-12-14
  • 2020-02-21
  • 2020-04-24
  • 2019-07-31
  • 2012-04-24
  • 2017-07-08
相关资源
最近更新 更多