从子类的ModelForm创建父类对象

时间:2016-12-01 07:32:15

标签: python django django-models django-forms

我有一个模特'约会'。在该类中,患者与内置的用户模型相关联。我为该类创建了一个模型表单。是否可以从同一表单内实例化另一个类的对象(现场患者中的用户)。我无法访问表单中的用户模型字段。怎么办呢?

class Appointment(models.Model):
    doctor = models.ForeignKey(Doctor)
    clinic = models.ForeignKey(Clinic, null=True, blank=True)
    hospital = models.ForeignKey(Hospital, null=True, blank=True)
    day = models.DateField()
    time = models.TimeField()
    patient = models.ForeignKey(User)

我为此模型创建了一个ModelForm,如下所示:

class HospitalCreateAppointmentForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(HospitalCreateAppointmentForm, self).__init__(*args, **kwargs)
        for field in iter(self.fields):
                self.fields[field].widget.attrs.update({
                    'class': 'form-control'
                })

    class Meta:
        model = Appointment
        fields = ['doctor','hospital','day','time','patient']
        widgets = {
            'day': forms.SelectDateWidget(),
        }

1 个答案:

答案 0 :(得分:1)

我不确定在HospitalCreateAppointmentForm中实例化用户对象的目的。但是,如果您确实需要,则必须在表单文件中导入用户模型。例如,如果HospitalCreateAppointmentFor位于forms.py,请导入用户模块,如

from django.contrib.auth.models import User

您可以访问以下字段:

User._meta.fields