我有四个模型,其中三个有'独立'字段,但第四个模型有ForeignKey链接到其他三个。
class PreCheck(models.Model):
name = models.CharField(max_length=120)
time_in = models.DateTimeField(auto_now_add=True)
is_insured = models.BooleanField()
class MainCheck(models.Model):
height = models.FloatField()
weight = models.IntegerField()
class PostCheck(models.Model):
sickness = models.CharField(max_length=30)
medication = models.CharField(max_length=30)
class MedicalRecord(models.Model):
patient = models.ForeignKey(User)
next_check_date = models.DateTimeField()
payment_amount = models.IntegerField()
initial_check = models.ForeignKey(PreCheck)
main_check = models.ForeignKey(MainCheck)
post_check = models.ForeignKey(PostCheck)
假设患者进入房间,完成预检并保存,然后进行其他检查,最后设置最终记录。
理想情况下,我想在不同时间填写不同模型的表单,可能在不同的页面/标签中。
管理员已经为MedicalRecord模型弹出窗口,但在前端很难为此编写javascript。 另一个选择是单独填写模型并执行 str 返回功能,然后从MedicalRecord表单中的下拉列表中选择(我正在努力避免)
答案 0 :(得分:0)
只需为每个ForeignKey字段添加blank = True,null = True。
initial_check = models.ForeignKey(PreCheck, blank=True, null=True)
main_check = models.ForeignKey(MainCheck, blank=True, null=True)
post_check = models.ForeignKey(PostCheck, blank=True, null=True)
在初始检查时,您可以在MedicalRecord模型表单的帮助下创建MedicalRecord,这次main_check和post_check记录可以保留blank。 主检后,您可以使用main_check详细信息更新MedicalRecord,这次留空post_check记录,并在不同的页面/标签上继续更新您的MedicalRecord并提供详细信息。