python - 如何在 django 中获取所有用户与单个相关对象?
问题描述
我想输出所有用户及其相关分数
user = User.objects.all()
scores = user.myuser.all()
其中'myuser'是分数模型的相关名称,我尝试了上面的代码,但我收到了这个错误:
myuser 不是对象错误的属性。
解决方案
我不完全确定您是型号名称,但是这样的事情应该可以工作:假设您有以下内容:
class StudentScores(models.Model):
user = models.ForeignKey(User)
获取单个用户的所有分数:
scores = user.studentscores_set.all()
遍历所有用户及其分数:
for user in User.objects.all():
for score in user.studentscores_set.all():
print(score)
当您有外键关系时,您可以User
使用<name>_set.all()
语法从相关模型(在本例中)访问它们。
您可能可以使用带注释的查询集做一些更有效的事情,但是在不知道用例的情况下,推荐更多的东西有点困难。
注意:如果您已经为 scorerelated_name
中的user
字段定义了 a(像这样:)
user = models.ForeignKey(User, related_name='scores'
,那么您可以像这样访问用户的分数:scores = user.scores.all()
另外,我注意到您有一个字段class = models.CharField()
,请考虑将其重命名为其他名称,例如student_class
保留class
字。
推荐阅读
- uwp - 在 UWP 中拍摄流式 Rtsp 视频的快照
- c# - 为什么我无法从我的 NPGSQL 服务器获取数据?
- aws-lambda - 从 Lambda 解析网络负载均衡器的 DNS 名称
- c# - Azure 数据库中的存储过程在 ASP.NET 中运行速度很快,但在 SSMS 中运行速度很慢
- java - 如何使用jsoup在java中打开不同浏览器的URL
- r - 我想故意将数据框中的 5%、10% 的值替换为 NA 以模拟随机丢失的数据
- c++ - 通过 SID 获取 Windows 本地组名
- sql - 按键获取最小值/最大值 - 不同的方法
- sparql - Sparql 查询以获取和删除重复记录
- sql-server - 将 Tableau Server 上的数据源连接到 MSSQL-server 的要求