我正在尝试在我的Django-powered站点上继承模型,以便坚持DRY。我的目标是使用一个名为BasicCompany的抽象基类来提供三个子类的公共信息:Butcher、Baker、CandlestickMaker(它们位于各自的应用程序中各自的名称下)。在
每个子类都需要可变数量的东西,如电子邮件地址、电话号码、url等,其数量范围从0到更大。所以我想在这些类和它们所指的公司之间建立多对一/外键关系。这大概是我想象的BasicCompany/模型.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(等等)继承到子类中。能做到吗?如果可以,怎么做?如果没有,我会很感激你关于解决办法的建议。在
我想您最好使用generic relations作为链接,而不是尝试将所有内容绑定到基类。泛型关系允许您将EmailAddress之类的模型链接到任何其他类,这似乎很适合您的用例。在
相关问题 更多 >
编程相关推荐