我正在尝试在我的Django网站上使用模型继承以遵循DRY原则。我的目标是使用一个名为BasicCompany的抽象基类为三个子类Butcher、Baker和CandlestickMaker(它们分别位于自己的应用程序下)提供共同信息。
每个子类都需要变量数量不等的东西,如电子邮件地址、电话号码、URL等,数量从0到多个不等。因此,我希望这些类与它们所指向的公司之间存在多对一/ForeignKey关系。以下是我大致想象的BasicCompany/models.py的样子:
from django.contrib.auth.models import User
from django.db import models
class BasicCompany(models.Models)
owner = models.ForeignKey(User)
name = models.CharField()
street_address = models.CharField()
#etc...
class Meta:
abstract = True
class EmailAddress(models.model)
email = models.EmailField()
basiccompany = models.ForeignKey(BasicCompany, related_name="email_addresses")
#etc for URLs, PhoneNumbers, PaymentTypes.
我不知道如何将EmailAddress、URL和PhoneNumbers等内容继承到子类中。这是否可行?如果可以,具体该如何操作?如果不行,希望您能提供解决方案。