【问题标题】:limit ForeignKey choices based on another ForeginKey field根据另一个外键字段限制外键选择
【发布时间】:2017-06-12 13:16:50
【问题描述】:

假设我有一个如下所示的应用结构:

** 模型.py **

Class School(models.Model):
    name = models.CharField(max_length=500)


Class Manager(models.Model)
    name = models.Charfield(max_length=500)
    school = models.ForignKey(School)


Class Group(models.Model)
    name = models.Charfield(max_length=500)
    school = models.ForeignKey(School)
    manager = models.ForeignKey(Manager, related_name="group_manager")

在模板中,我希望用户能够创建群组(在学校页面中)并在仅属于同一学校的经理中进行选择!

有什么想法吗?

【问题讨论】:

    标签: django django-forms foreign-keys limit-choices-to


    【解决方案1】:

    如果您有一个包含 2 个外键和一个名称的表,它可能应该是 Shool 和 Manager 之间的多对多关系的直通表。

    Class School(models.Model):
        name = models.CharField(max_length=500)
        managers = models.ManyToMany(Manager, through='Group')
    

    【讨论】:

    • 没有办法使用ForeignKey吗?
    • 在您的架构中,一个 Group 可以引用一个 School 和一个 Manger。但据我了解,每所学校可能有不止一个 Magnaer。
    • 如果每所学校只有一名经理怎么办?我该怎么做?
    • 在这种情况下,最简单的方法是在模板中进行循环遍历所有经理并仅显示该学校的经理。
    猜你喜欢
    • 2011-03-14
    • 2015-05-29
    • 2020-04-12
    • 2016-08-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多