0
我已經嘗試了各種選項,但至今沒有運氣。我試圖將實例數據預填充到我的ModelField中。以下是我有:使用對象數據預填充模型表單 - Django
forms.py
class edit_project_info(ModelForm):
project_name = forms.CharField(max_length=150)
class Meta:
model = Project
exclude = ['project_type', 'created_date', 'start_date', 'end_date', 'pm_scope', 'dev_scope', 'design_scope', 'testing_scope' ]
View.py
def edit_project (request, offset):
this_project = Project.objects.get(pk=offset)
data = {'project_name' : 'abc'}
if request.method == 'POST':
form = edit_project_info(request.POST, instance=this_project, initial=data)
if form.is_valid():
form.save()
return HttpResponseRedirect('/project_profile/%s/' % offset)
else:
form = edit_project_info()
我得到的是一個空場。我可以將這個初始值添加到forms.py中,但它是靜態的,而不是基於表單實例填充的。我在這裏所做的創建一個字典,然後將它傳遞給表單實例中的初始值,似乎沒有做任何事情。我確定我缺少一些基本的東西。任何幫助將是偉大的!提前致謝。
這給了我一個錯誤「局部變量‘形式’分配前引用了」,但根據你的建議,我改變了最後一行「的形式= edit_project_info(初始=數據)」和它的作品作爲現在預計。仍然需要做一些研究來理解爲什麼。謝謝您的幫助。 – jonin
哦,對不起,我不明白縮進。我更新了答案 - 'form'應該在'if request.method =='POST'之前:'。 –
謝謝安東!這按預期工作。 – jonin