我有一个视图,可以通过html页面将表单详细信息保存到两个不同的Person对象(具有不同的ID),但它们位于同一个表中(位于不同的行上)
看法
person = Person.objects.filter(pk = user.related_person_id).first()
medical_emergency_person = Person.objects.filter(related_entity=medical_emergency_entity).first()
if request.method == "POST":
form1 = PersonUpdateForm(request.POST, instance=person)
form5 = MedicalPersonUpdateForm(request.POST, instance=medical_emergency_person)
form1.save()
form5.save()
else:
form1 = PersonUpdateForm(
initial= {
"title": person.title,
"first_name": person.first_name,
"last_name": person.last_name,
"alias": person.alias
}
)
form5 = MedicalPersonUpdateForm(
initial= {
"title": medical_emergency_person.title,
"first_name": medical_emergency_person.first_name,
"last_name": medical_emergency_person.last_name,
}
)
context['personal_person_form'] = form1
context['personal_medical_emergency_person_form'] = form5
形式
class MedicalPersonUpdateForm(forms.ModelForm):
# FORM META PARAMETERS
class Meta:
model = Person
fields = ('title', 'first_name', 'last_name')
labels = {
'title': _("Title*"),
'first_name': _("Emergency Contact First Name*"),
'last_name': _("Emergency Contact Last Name*")
}
# FORM INITIALISATION TO SET HTML STYLING
def __init__(self, *args, **kwargs):
super(MedicalPersonUpdateForm, self).__init__(*args, **kwargs)
self.fields['title'].widget.attrs['class'] = 'input'
self.fields['first_name'].widget.attrs['class'] = 'input is-danger'
self.fields['last_name'].widget.attrs['class'] = 'input is-danger'
class PersonUpdateForm(forms.ModelForm):
# FORM META PARAMETERS
class Meta:
model = Person
fields = ('title', 'first_name', 'last_name', 'alias')
labels = {
'title': _("Title*"),
'first_name': _("First Name*"),
'last_name': _("Last Name*"),
'alias': _("Alias")
}
# FORM INITIALISATION TO SET HTML STYLING
def __init__(self, *args, **kwargs):
super(PersonUpdateForm, self).__init__(*args, **kwargs)
self.fields['title'].widget.attrs['class'] = 'input'
self.fields['first_name'].widget.attrs['class'] = 'input is-danger'
self.fields['last_name'].widget.attrs['class'] = 'input is-danger'
self.fields['alias'].widget.attrs['class'] = 'input is-danger'
后果
我正在经历的行为是,在数据库中,两个人的记录都是用表格5中的细节写的?然后当页面重新加载请求时。post,对于页面上的字段,firstname和lastname字段集都只显示表单5中的详细信息,而不是表单1和表单5中的详细信息。我做错了什么?