python - Django多模型继承,django-push-notifications

标签 python django inheritance

我正在使用 Django 1.8 为移动应用编写后端。 django-push-notifications 库提供了 GCMDevice 模型。问题是我已经有了一个 Device 模型,其中包含一些必填字段和一些我不想丢失的逻辑。

我想做的是继承整个 GCMDevice 功能并将它们调整到我的设备模型(顺便说一下,它继承了另一个提供空间数据字段的混合,带有我想保留的自定义对象管理器集) .我阅读了 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 设备作为主键。

关于python - Django多模型继承,django-push-notifications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30226377/

相关文章:

django - 填写其中之一后,不应再要求这两个字段之一

javascript - Reactjs 类与 javascript 类

Python - 将文本文件保留在一行中?

python - 在 python 教程中的 webscraping 之后,他们使用 urllib 我使用 requests 帮助翻译指令

python - LIST和TUPLE赋值操作

python - 将用户信息保存在 HTML python 中的任何地方

css - 我的 Django 元素没有加载 Bootstrap 字形

python - 使用 Popen 打开一个进程并在一段时间后终止

java - 扩展内部类和扩展嵌套类之间的区别?

inheritance - GoLang 等效于使用接口(interface)与数据和成员函数的继承