从反向/反向侧定义ForeignKey字段

时间:2013-12-04 18:50:21

标签: python django model

我正在使用django-paypal-adaptive,我想在我的一个项目模型(Project)和第三方包中定义的模型之间建立关系({{1 }})。

我很乐意这样做:

Preapproval

因此,在两个模型之间创建了多个 - class Preapproval(models.Model): ... project = models.ForeignKey(Project) - 一个 - Preapproval关系。

但是,Project类由Preapproval提供,因此我无法对其进行修改。

如何在django-paypal-adaptivePreapproval之间建立多对一关系?

3 个答案:

答案 0 :(得分:0)

您可以创建和维护自己的django-paypal-adaptive分支,并修改Preapproval模型以包含您的项目模型。

您可以利用继承,使用Preapproval模型作为父模型定义新模型。

您可以利用合成,定义具有预批准模型的外键的新模型。

......只是一些,但我相信还有其他方法。

答案 1 :(得分:0)

除非项目允许您以某种方式覆盖Preapproval模型,否则不能这样做。您需要分叉项目或只是将新模型字段添加到/lib/python/site-packages/.../文件夹中的第三方项目,并使用South或类似的东西迁移模型

答案 2 :(得分:0)

您可以将Preapproval导入模型并进行自定义

class MyPreapproval(Preapproval):
    ...
    project = models.ForeignKey(Project)