Django模型继承自不同的模型,每个模型都继承自单个类

2024-10-06 07:54:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django创建一个表单。此表单的ModelForm构建在继承自基本模型的多个模型上。模型的结构与此类似:

class BaseModel(models.Model):
    first_name = models.CharField("First name", max_length=20)
    middle_name = models.CharField("Middle name", max_length=20)
    last_name = models.CharField("Last Name", max_length=20)
    email = models.EmailField("Email address")
    phone = models.CharField("Phone number", max_length=16)

继承人

class EmployerModel(BaseModel):
    company = models.CharField("Company", max_length=20)

还有。。你知道吗

class AdvisorModel(BaseModel):
    department = models.CharField("Department", max_length=20)

它包含在我的最高级别模型(在我的ModelForm中使用的模型)中:

class FormModel(EmployerModel, AdvisorModel):
    another_field = models.CharField(max_length=20)
    and_another_field = models.CharField(max_length=20)

#...

class FormModelForm(forms.ModelForm):

    class Meta:
        model = FormModel

我可以在制作表单时采用这种方法并避免ORM错误,因为我有重复的字段名吗?有没有办法分开说:“这些字段是给‘雇主’的;这些字段是给‘顾问’的?”你知道吗

编辑

看起来我需要使用抽象基类,但我不知道这是否解决了多重继承问题。你知道吗


Tags: name模型表单fieldmodelsanotherlengthmax
1条回答
网友
1楼 · 发布于 2024-10-06 07:54:36

对于父模型,我已经成功地编写了具有这种定义的模型:

class Content(ModeratedModel, NullableGenericModel, RatedModel, PicturableModel, PrivacyModel, CommentableModel):
    pass

使用ModelForm作为模型的Content工作得很好。你知道吗

相关问题 更多 >