簡體   English   中英

使用foreignkey在Django中抽象基類繼承

[英]Abstract base class inheritance in Django with foreignkey

我正在我的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(等)繼承到子類中。 可以這樣做,如果是,怎么做? 如果沒有,我將非常感謝您對解決方法的建議。

我懷疑你會更好地使用鏈接的泛型關系 ,而不是試圖將所有內容綁定到基類。 通用關系允許您將諸如EmailAddress之類的模型鏈接到任何其他類,這似乎非常適合您的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM