【发布时间】:2018-09-25 09:27:49
【问题描述】:
更新时我无法看到预先存在的表单数据。表单工作正常,提交数据库后更新,但为了提交用户必须输入所有表单数据(包括不会更新的数据)。重新输入时,以前的数据不可见。有没有办法在表单字段中显示正在更新的模型实例的当前数据?
表格:
UpdateSomethingForm(forms.ModelForm):
class Meta:
model = Something
fields = ['field1', 'field2', 'field3']
观看次数:
def update_something(request, object_pk):
form = UpdateSomethingForm()
context_dict = {}
try:
instance = Something.objects.get(pk=object_pk)
context_dict['instance'] = instance
except Something.DoesNotExist:
context_dict['instance'] = None
if request.method == 'POST':
form = UpdateSomethingForm(request.POST, instance=instance)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect('/home')
else:
print(form.errors)
context_dict['form'] = form
return render(request, 'form.html', context=context_dict)
HTML:
<form role="form" method="post">
{% csrf_token %}
{{ form|bootstrap }}
<div class="form-group">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
【问题讨论】:
-
如果你创建一个项目也可能出错,因为那时
instance永远不会被定义。
标签: django