django - 在 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
解决方案
我想在组模型中有一个字段,代表该组中排名最高的人。
在这种情况下,您可能希望将ForeignKey添加到您的 Group 模型中。外键的作用是将其中一个字段(您可以随意命名)链接到另一个模型类,在您的情况下,它将是 User 模型。
但是看到你想要排名最高的人,上述所有操作都会被认为是不现实的,因为每次排行榜发生变化时你都需要刷新你的模型,这很不方便。
我建议不要添加另一个字段,而是渲染所有人员对象并将其作为上下文的一部分传递。这样,随着用户排名的变化,您无需刷新模型。请参阅文档中有关将上下文传递给视图和对数据进行排序的方法的详细信息。
推荐阅读
- graphviz - DOT Graph/Graphviz——根据边权重获取顶部节点和边
- android - 在依赖项中找到重复的类
- java - JavaFX 标签中的场景构建器不起作用
- java - 在 java 中将 xlsx 转换为 csv 之后,将 int 填充为浮点值
- javascript - 在 Ionic 中获取所有条目 vom Firebase 数据库
- javascript - 如何根据请求更新 MongoDB 集合中的嵌套对象?
- federated-identity - 第三方移动应用程序作为 OIDC 客户端(例如 Google IDP)与另一个移动应用程序集成
- r - 如何添加线以连接 R 中多个箱线图中的某些数据点?
- android - 为什么“应用程序和通知”中未向我的应用程序显示“如果未使用应用程序则删除权限”选项
- c++ - 如何定义一个可以传递给其他类的类的全局零对象?(C++)