我想在显示时将表单和请求结果传递给这种模板,我从查询结果中得到一个带有值的表单。就像您通过django的管理页面修改元组时一样。怎么做 ? Views.py
def modification_ue(request, code):
ue_form = UEForms()
ue = UE.objects.get(code_ue=code)
return render(request, 'felyn/modifier.html', {'ue_form': ue_form, 'ue': ue})
答案 0 :(得分:1)
可以将模型实例ue
传递到ModelForm的实例,以使其预先填充其中的值。
例如,
ue = UE.objects.get(code_ue=code)
ue_form = UEForms(instance=ue)
return render(request, 'felyn/modifier.html', {'ue_form': ue_form, 'ue': ue})
在UEForms
不是ModelForm而是django.forms.Form
的子类的情况下,您需要通过将其作为字典传递来绑定不同的数据。
例如,
from django.forms.models import model_to_dict
#...
ue = UE.objects.get(code_ue=code)
ue_dct = model_to_dict(ue)
ue_form = UEForms(ue_dct)
return render(request, 'felyn/modifier.html', {'ue_form': ue_form, 'ue': ue})
但是,我建议利用Django ModelForm或modelform_factory,因为在表单中需要进行最少的自定义以将模型实例链接到表单。