【问题标题】:Django: URL reverse errorDjango:URL反向错误
【发布时间】:2015-06-25 05:45:22
【问题描述】:

我有这个网址参考

{% url 'mahasiswa:mhs_delete' mhs.id %}

{% url 'mahasiswa:mhs_edit' mhs.id %}

在 urls.py 中使用这种模式

from django.conf.urls import patterns, url

from mahasiswa import views
urlpatterns = patterns('',
  url(r'^$', views.mhs_list, name='mhs_list'),
  url(r'^new$', views.mhs_create, name='mhs_new'),
  url(r'^edit/(?P<pk>\d+)$', views.mhs_update, name='mhs_edit'),
  url(r'^delete/(?P<pk>\d+)$', views.mhs_delete, name='mhs_delete'),
)

我得到了错误:

使用参数“(None,)”和关键字参数反转“mhs_edit” '{}' 未找到。尝试了 1 种模式:[u'mahasiswa/edit/(?P\d+)$']

帮我解决它...

【问题讨论】:

  • 也许您没有名为 mhs 的模板变量或未保存 mhs。这就是为什么 mhs.id 是 None 的原因。安装 django 调试工具栏并使用选项卡“模板”查看模板中可用的变量。

标签: django url


【解决方案1】:

您的 urlpatterns 中只有一个mhs_edit 的 URL 模式:

url(r'^edit/(?P<pk>\d+)$', views.mhs_update, name='mhs_edit')

但该视图需要 1 个参数:\d+ 类型的 pk(匹配接受任何至少一位数字的字符串)。参数类型 (None,) 不适合原型。你可以试试:

reverse('mhs_edit', args=(123,))

reverse('mhs_edit', args=("123",))

【讨论】:

    猜你喜欢
    • 2013-07-19
    • 2020-09-02
    • 2014-01-20
    • 2023-03-21
    • 1970-01-01
    • 2014-04-21
    • 2012-08-24
    • 2014-01-08
    • 2012-10-05
    相关资源
    最近更新 更多