【问题标题】:Best way to query/display multi-joined data from using Django使用 Django 查询/显示多连接数据的最佳方法
【发布时间】:2019-02-16 21:40:01
【问题描述】:

我是 Django 新手,一个关于查询/显示连接表的问题。

我有一个包含“managers”和“skills”的模型设置......以及一个“managerskills”的连接表。

ManagerSkills 具有指向“经理”表和“技能”表的外键链接。这是一个多对多表。 (管理者有很多技能,技能属于不同的管理者)

我希望检索经理列表,将其显示在网格中,并有一个“技能”列,该列将显示与经理相关的以逗号分隔的技能列表。

class Manager(models.Model):
    title = models.CharField(max_length=250)

class Skill(models.Model) :
    skill = models.CharField(max_length=15)

class ManagerSkills(models.Model) :
    manager = models.ForeignKey(Manager,on_delete=models.CASCADE)
    skill = models.ForeignKey(Skill,on_delete=models.CASCADE)

如何查询此数据集以检索不同的经理列表,同时参考可在表格/网格中输出的相关技能?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    由于这是多对多关系,您应该这样声明:

    class Manager(models.Model):
        skills = models. ManyToManyField("Skill", through="ManagerSkills")
        ...
    

    现在您可以在模板中遍历manager.skills.all

    (请注意,如果您在 ManagerSkills 上没有任何其他字段,则可以将定义连同字段中的 through 属性一起删除;这样可以更轻松地在管理员中管理技能。)

    【讨论】:

    • 谢谢,我是 Django 新手,所以不了解“through”属性...很好。
    猜你喜欢
    • 2023-01-29
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2020-04-23
    • 1970-01-01
    相关资源
    最近更新 更多