0
我有一個在ListView中實現的窗體。該表單用於編輯現有項目。不過,我得到一個關鍵的錯誤,當我嘗試提交表單: File "C:\Users\John\Desktop\website\app\views.py", line 124, in form_valid id = self.kwargs['id'] KeyError: 'id' [14/Dec/2016 21:42:09] "POST /car/ HTTP/1.1" 500 99346
Django窗體 - 關鍵錯誤
這是主代碼:
class CarListFormView(FormView):
form_class = CarListForm
def form_valid(self, form):
id = self.kwargs['id']
obj = Car.objects.get(pk=id)
form = CarListForm(instance=obj)
car = form.save(commit=False)
if self.request.user.is_staff:
car.agency = Agency.objects.get(agency_id=9000)
else:
car.agency = self.request.user.agency
car.save()
return redirect('car_list')
是什麼原因導致這個關鍵的錯誤?
謝謝!
如何將'id'添加到我的'kwargs'中?我不認爲我可以像你提議的那樣簡化,因爲我使用表單編輯現有對象而不添加新對象。我很抱歉沒有在我的問題中指出這一點。 – Wessi
如果您使用來自django.views.generic import UpdateView'的'UpdateView'',則可以按照我的建議進行簡化。該視圖知道您正在編輯模型,並且不會創建新模型。 – Brobin
我已更新我的答案以反映此問題 – Brobin