我正在使用 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/