我在 django 2.0 Reverse 中遇到错误,因为找不到参数 '('',)' 的 'delete'。尝试了 1 种模式:['delete\\/(?P<city_id>[^/]+)

Posted

技术标签:

【中文标题】我在 django 2.0 Reverse 中遇到错误,因为找不到参数 \'(\'\',)\' 的 \'delete\'。尝试了 1 种模式:[\'delete\\\\/(?P<city_id>[^/]+)\\\\/$\']【英文标题】:i am getting an error in django 2.0 Reverse for 'delete' with arguments '('',)' not found. 1 pattern(s) tried: ['delete\\/(?P<city_id>[^/]+)\\/$']我在 django 2.0 Reverse 中遇到错误,因为找不到参数 '('',)' 的 'delete'。尝试了 1 种模式:['delete\\/(?P<city_id>[^/]+)\\/$'] 【发布时间】:2019-01-25 15:36:52 【问题描述】:

模板

<form method='POST' action="% url 'delete' city_weather.id %">

urls.py

path('delete/<int:city_id>/',views.delete,name='delete')

views.py

def delete(request,city_id):
    city = get_object_or_404(CityUser,pk=city_id)
    city.delete()
    return redirect('home')

请点击链接查看错误页面

here is the error page

我做错了什么?请帮帮我

提前致谢

【问题讨论】:

【参考方案1】:

为了清楚起见,我会发表评论,但我还需要 4 个声望才能这样做。不过,我需要以下内容来帮助您调试它。

    您显示的 urlpattern 是项目根文件夹中 include() 的一部分吗??? 向我们展示您的 CityUser 模型 您是否曾创建过该模型的实例???

没有这些,没人能真正分辨出来,因为您的问题是找不到 url(NoReverseMatch 错误)。在我的脑海中,最有可能的罪魁祸首可能是包含您未显示的 app_name 的 include(),因此您可能没有在模板中正确引用它。或者它也可能与您的模型有关。所有模型对象都有一个 id,并且您正确地传递了参数,但也许您从未创建过一个实例。

让我看看这些东西,我会提供更多帮助。

【讨论】:

以上是关于我在 django 2.0 Reverse 中遇到错误,因为找不到参数 '('',)' 的 'delete'。尝试了 1 种模式:['delete\\/(?P<city_id>[^/]+)的主要内容,如果未能解决你的问题,请参考以下文章

使用电子邮件注册,Django 2.0

我无法运行服务器 Django 2.0

Django的列表反序

Django 中的 login_required 装饰器和 urlresolver.reverse()

在模板中获取 url 时出错 - Django

Django NoReverseMatch 新手