我需要一个与外键相关的表。在
具有主键患者_id(必需)和诊断具有外键患者的人口统计表。我创建了两个窗体。我将字段保存在第一个表单上,然后在诊断表单中自动完成患者字段。在
问题是,当我试图将字段的值保存在诊断表单上时,第一个表单上的错误是“此字段是必需的”,即使此字段的值是在一分钟前存储的。在
编辑:这是我的解决方案
输入.html(模板)
<form class="form-horizontal" method="post">
{% csrf_token %}
<div class="tabbable">
<ul class="nav nav-tabs">
<li class="active">
<a href="#1" data-toggle="tab">Demographics</a>
</li>
<li>
<a href="#2" data-toggle="tab">Diagnosis</a>
</li>
<li>
<a href="#3" data-toggle="tab">A_b_sickle</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="1">
<input type="hidden" name="form_id" value="demographics">
<p>{%crispy frm%}</p>
</div>
<div class="tab-pane fade" id="2">
<!-- form controls to be continued here -->
<input type="hidden" name="form_id" value="diagnosis">
{%crispy frm_d%}
<p>Howdy, I'm in Section 2.</p>
</div>
<div class="tab-pane fade" id="3">
<!-- form controls to be continued here -->
<input type="hidden" name="form_id" value="a_b_s">
{%crispy frm_a_b_s%}
<p>Howdy, I'm in Section 3.</p>
</div>
</div>
</div>
<!--<input type="submit" name='submit' value="Submit">-->
</form>
我的视图.py包含:
^{pr2}$模型.py
class demographic(models.Model):
national_health_care_pat_id = models.IntegerField('National Health Care patient id', null=True,blank=True)
patient_hospital_file_number = models.IntegerField(null=True,blank=True)
patient_id = models.IntegerField(unique= True ,primary_key=True)
def __str__(self):
return str(self.patient_id)
class diagnosis(models.Model):
patient = models.ForeignKey(demographic)
age_of_diagnosis = models.IntegerField(null=True,blank=True)
def __str__(self):
return str(self.patient_id)
表单.py
class DemographicForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(DemographicForm, self).__init__(*args, **kwargs)
self.helper=FormHelper(self)
self.fields['date_of_birth'].widget = widgets.AdminDateWidget()
self.helper.layout = Layout(
'national_health_care_pat_id',
'patient_hospital_file_number',
'patient_id',
FormActions(
Submit('submit', "Save changes"),
Submit('cancel', "Cancel")
),
)
self.helper.form_tag = False
self.helper.form_show_labels = True
class Meta:
model = demographic
exclude = []
class DiagnosisForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(DiagnosisForm, self).__init__(*args, **kwargs)
self.helper=FormHelper(self)
self.helper.layout = Layout(
'patient',
'age_of_diagnosis',
FormActions(
Submit('submit', "Save changes"),
Submit('cancel',"Cancel")
),
)
self.helper.form_tag = False
self.helper.form_show_labels = True
class Meta:
model = diagnosis
exclude = []
你知道有什么问题吗?提前谢谢你!在
您需要传入实际的
demographic
对象,而不仅仅是DiagnosisForm
的ID。Django希望ForeignKey
字段指向它们所表示的对象的实例。您还需要从诊断表单中排除patient
字段。这将阻止Django尝试验证字段。在相关问题 更多 >
编程相关推荐