Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django表单包含来自多个模型的数据_Django_Forms_Django Forms - Fatal编程技术网

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