Django表单包含来自多个模型的数据
最简单的解释方法就是说我想做什么 我有一个访问模型和一个主题模型。访问是以外键输入主题的,因此我可以在我的表单中获取主题作为选择字段(这是基于访问模型构建的模型表单) 我还需要其他与主题相关的数据,我想知道访问这些数据的最佳方式是什么 下面是我的模型、形式和我最终想要的 型号Django表单包含来自多个模型的数据,django,forms,django-forms,Django,Forms,Django Forms,最简单的解释方法就是说我想做什么 我有一个访问模型和一个主题模型。访问是以外键输入主题的,因此我可以在我的表单中获取主题作为选择字段(这是基于访问模型构建的模型表单) 我还需要其他与主题相关的数据,我想知道访问这些数据的最佳方式是什么 下面是我的模型、形式和我最终想要的 型号 class Subject(models.Model): def __unicode__(self): return self.subject_name subject_name=model
class Subject(models.Model):
def __unicode__(self):
return self.subject_name
subject_name=models.CharField(max_length=60,null=True, blank=True)
subject_number=models.CharField(max_length=10,null=True, blank=True)
birthdate=models.DateField("Date of Birth",null=True, blank=True)
cohort=models.ForeignKey("Cohort",null=True, blank=True)
class Visit(models.Model):
def __unicode__(self):
return self.id
subject=models.ForeignKey("Subject")
ageband=models.ForeignKey("AgeBand",null=True, blank=True)
visit_date=models.DateField("Visit Date",null=True, blank=True)
表格
class TestForm(ModelForm):
class Meta:
model = Visit
widgets = {
'visit_date': DateInput(attrs={'class':'datepicker'}),
}
以形式简单描述我想要的内容
class TestForm(ModelForm):
class Meta:
model = Visit
widgets = {
'visit_date': DateInput(attrs={'class':'datepicker'}),
}
受试者姓名。(有此项)
受试者编号(有此)
受试者出生日期(来自Subject.Birthdate,没有此项)
访问日期(有此项)
ModelForm
仅表示一个模型中的字段。如果要同时使用这两个模型,则需要使用一个InlineFormSet
,它允许您组合两个ModelForm
s。从:
内联表单集是模型表单集之上的一个小抽象层。这些简化了通过外键处理相关对象的情况
下面是一个类似的示例,描述了如何创建InlineFormSet