1
我有以下几点看法:Django的 - 蟒蛇:利用反向失败:没有反向匹配
def default_new (request):
if request.method == "POST":
post = EquipmentForm(request.POST)
if form.is_valid():
post.save()
return HttpResponseRedirect(reverse('calbase:default_detail', args=(id,)))
else:
form = EquipmentForm()
return render(request, 'calbase/default_edit.html', {'form':form})
class default_detail (generic.DetailView):
model = Equipment
template_name = 'calbase/default_detail.html'
和URL:
urlpatterns = [
url(r'^$', views.default, name = 'default'),
url(r'^default/((?P<id>\d+)/$)', views.default_detail.as_view(), name = 'default_detail'),
url(r'^default/new/$', views.default_new, name = 'default_new'),
]
我想在这里做的就是采取一个表单输入,保存,然后重定向到其详细视图。然而,尽管形式正确保存,它总是给我喜欢的错误:
NoReverseMatch at /calbase/default/new/
Reverse for 'default_detail' with arguments '(<built-in function id>,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['calbase/default/((?P<id>\\d+)/$)']
可能有人帮我搞清楚什么是错在这里请?
谢谢,但是当我试过了,它给了我“‘EquipmentForm’对象有没有属性‘身份证’” –
我没有当场说'POST'是一种形式,而不是' POST'。这很混乱!使用'form'作为你的表单,'post'作为'Post'实例,它会让你的代码更易于理解!我已经更新了答案。 – Alasdair
对不起,我感到困惑。并非常感谢您的帮助。我尝试了你的更新,它现在是“反向'default_detail'参数'(28,)'和关键字参数'{}'没有找到。''calbase/default /((?P \\ d +)/ $)']”。我想知道问题是否与网址相关? –