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 +)/ $)']」。我想知道問題是否與網址相關? –