簡體   English   中英

Django多模型繼承,django-push-notifications

[英]Django multiple model inheritance, django-push-notifications

我正在使用Django 1.8為移動應用程序編寫后端。 django-push-notifications庫提供了GCMDevice模型。 問題是我已經有了一個Device模型,其中包含一些必填字段和一些我不想丟失的邏輯。

我想要做的是繼承整個GCMDevice功能並將其調整為我的設備模型(順便說一句,它繼承了另一個提供空間數據字段的mixin,並保留了我要保留的自定義對象管理器)。 我閱讀了大約3種不同的django模型繼承思想,但似乎都無法解決我的問題(保留管理器,提供django-push-notifications功能,保留我的Device模型字段)。 也許OneToOne協會會做這項工作嗎?

理念:

class Device(MyMixin):
    gcm_device = models.OneToOneField(GCMDevice)
    my_other_field = models.TextField()

    def send_message(self, payload):
        self.gcm_device.send_message(payload)

有什么必要繼承的原因嗎? 合成可以替代您通過繼承嘗試執行的操作嗎?

-----------------編輯答案-----------------

class Device(models.Model):
    ...
    gcm_device = models.OneToOneField(GCMDevice)

我給出了最簡單的情況,您也可以將GCM設備設置為主鍵。

暫無
暫無

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

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