对于非正式FK相关的模型,强制关联django模型

时间:2011-04-11 00:18:15

标签: django django-models django-admin foreign-key-relationship

我正在试图找出如何让django管理系统将我的模型显示为内联,此时没有从子模型到父模型的直接FK。

我有三个模型(伪代码):

class CampaignMain(models.model):
    ...

class CampaignMonitor(models.model): 
    campaign = models.OneToOneField(CampaignMain, pk=True)

class CampaignTransaction(models.model):
    campaign = models.ForeignKey(CampaignMain)

所以CampaignMonitor和CampaignTransaction FK CampaignMain都是我需要它构建的方式。

以下是我无法理解的内容:我需要一个显示CampaignMonitor的管理页面,其中CampaignTransaction为内联。但是当我尝试这个时,我得到“在CampaignTransaction中指向CampaignMonitor的错误没有fk”

有没有办法只为管理页面“强制”关系?或者是否有通用的FK选项?我在contrib / contenttypes中看到了一些东西,但它似乎并不是我需要的东西。或者我是否必须以这种方式为两个模型构建自定义管理部分?

一如既往,建议非常感谢。

imanc

1 个答案:

答案 0 :(得分:0)

您可以使用Multi-table inheritance代替OneToOneField,它使用一对一的关系实现:

class CampaignMonitor(CampaignMain): 
    ...

现在根据需要修改CampaignMonitor的管理员。