Django 'dict'对象没有属性'user_id'



我得到以下错误'dict'对象没有属性'user_id',但我不确定是否理解该错误。由于user_id可从查询集中获得。

代码的最后一行出现错误

users_who_played = UserEvent.objects
            .values('user_id')
            .annotate(total_season_points=Sum('points'))
            .filter(event__season_id=season.id)
            .order_by('-total_season_points')
    for i, user_who_played in enumerate(users_who_played):
        try:
            user = UserSeason.objects.
                   get(user=user_who_played.user_id, season=season.id)

queryset上的.values()方法返回一个queryset,当您对其进行迭代时,该queryset返回字典而不是模型对象——因此user_who_played是一个dict,这意味着您应该通过编写user_who_played['user_id']而不是使用点属性语法来访问用户id。

如果只想从数据库中检索某些字段,但仍想处理模型对象,则可以使用.only()方法而不是.values()方法。

最新更新