gpt4 book ai didi

python - 使用外键在 Django 中抽象基类继承

转载 作者:太空狗 更新时间:2023-10-29 20:26:50 25 4
gpt4 key购买 nike

我正在尝试在我的 Django 支持的网站上进行模型继承以遵守 DRY。我的目标是使用一个名为 BasicCompany 的抽象基类为三个子类提供公共(public)信息: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(等)继承到子类中。可以做到吗?如果可以,怎么做?如果没有,我将不胜感激您对解决方法的建议。

最佳答案

我怀疑你会更好地使用 generic relations对于链接,而不是试图将所有内容都绑定(bind)到基类。通用关系允许您将 EmailAddress 等模型链接到任何其他类,这似乎很适合您的用例。

关于python - 使用外键在 Django 中抽象基类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1608975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com