【问题标题】:Force relationships on django models for models that aren't officially FK related在 django 模型上强制关系与非官方 FK 相关的模型
【发布时间】:2011-08-02 16:56:22
【问题描述】:

当没有从子模型到父模型的直接 FK 时,我试图弄清楚如何让 django 管理系统将我的模型显示为内联。

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

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 的错误 no fk”

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

一如既往地非常感谢您的建议。

伊曼克

【问题讨论】:

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


    【解决方案1】:

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

    class CampaignMonitor(CampaignMain): 
        ...
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-04
      • 2014-01-22
      • 2022-01-27
      • 1970-01-01
      • 2012-10-15
      • 2019-07-30
      • 1970-01-01
      相关资源
      最近更新 更多