【问题标题】:CurrentSiteManager via related modelCurrentSiteManager 通过相关模型
【发布时间】:2018-05-23 16:39:53
【问题描述】:

是否可以使用 CurrentSiteManager 来检查相关对象的站点 - 而不是对象本身的站点?

所以,给定以下模型:-

class A(models.Model):
    site = models.ForeignKey(Site)


class B(models.Model):
    a = models.ForeignKey(A)

我想在 B 上使用以下管理器:-

    on_site = CurrentSiteManager('a__site')

否则,我将不得不将站点作为外键添加到 A 和 B 并管理随之而来的所有问题。

但看起来 CurrentSiteManager 希望“站点”字段位于 B 类,而不是 A。

编写自己的 CurrentSiteManager 是我唯一的解决方案吗?

【问题讨论】:

    标签: python django django-managers django-sites


    【解决方案1】:

    您可以为此使用related_name 或相关查询名称。

    【讨论】:

    • 你能解释一下吗? related_name 用于从 A 到 B 的反向关系,不是吗?所以我可以做 a.b_set (或任何我定义的 related_name ),但这对我有什么帮助?
    • 也许我误解了这个问题,但我认为您想确保属于 A 中记录的 B 记录包含在同一站点中?但是该关系已经通过外键隐式创建。我建议使用related_name,因为我认为你被困在反向关系上。
    猜你喜欢
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    相关资源
    最近更新 更多