首页 > 解决方案 > 在 Django 中,我可以拥有一个模型字段,其值是一对多关系中的最大值吗?

问题描述

我有两个模型。一个代表几个组,另一个代表这些组中具有排名的人。我想在组模型中有一个字段,代表该组中排名最高的人。这可能吗?

例如:

Groups:
id  name    highest
1   alpha    gold    
2   bravo   diamond  

People:
name   group  rank
Dave     1    silver
bob      1    gold
dilan    1    silver
arthur   2    gold
mark     2    diamond

标签: djangodatabase-design

解决方案


我想在组模型中有一个字段,代表该组中排名最高的人。

在这种情况下,您可能希望将ForeignKey添加到您的 Group 模型中。外键的作用是将其中一个字段(您可以随意命名)链接到另一个模型类,在您的情况下,它将是 User 模型。

但是看到你想要排名最高的人,上述所有操作都会被认为是不现实的,因为每次排行榜发生变化时你都需要刷新你的模型,这很不方便。

我建议不要添加另一个字段,而是渲染所有人员对象并将其作为上下文的一部分传递。这样,随着用户排名的变化,您无需刷新模型。请参阅文档中有关将上下文传递给视图对数据进行排序的方法的详细信息。


推荐阅读