我想输出所有具有相关分数的用户
user = User.objects.all()
scores = user.myuser.all()
“ myuser”是分数模型的相关名称,我尝试了上面的代码,但出现此错误:
myuser不是对象错误的属性。
答案 0 :(得分:0)
我不能完全确定您是型号名称,但是这样的方法应该可以工作: 假设您有类似的东西:
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()
)中访问它们。
您可能可以对带注释的查询集进行更有效的操作,但是在不知道用例的情况下,建议更多的内容会更加困难。
注意:
如果您已为得分中的related_name
字段定义了user
(例如:
user = models.ForeignKey(User, related_name='scores'
),那么您可以像这样访问用户的分数:scores = user.scores.all()
此外,我注意到您有一个字段class = models.CharField()
,请考虑将其重命名为其他名称,例如student_class
和class
一样是保留字。
答案 1 :(得分:0)
您不需要使用词典来存储用户和乐谱,您可以直接从用户的对象中进行操作。
在view.py中:
def index(request):
users = user.objects.all()
return render(request,'template_name.html',{'users':users})
在Django模板中:
{% for user in users %}
{% for score in user.studentscores_set.all %}
<p>{{ score.field_name }}</p>
{% endfor %}
{% endfor %}