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

时间:2014-09-02 20:55:06

标签: django django-views

我收到以下错误'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)

1 个答案:

答案 0 :(得分:27)

The .values() method on querysets returns a queryset that returns dictionaries instead of model objects when you iterate over it - 所以user_who_played是一个字典,这意味着您应该通过编写user_who_played['user_id']而不是使用点属性语法来访问用户ID。

如果您只想从数据库中检索某些字段但仍希望处理模型对象,则可以使用the .only() method代替.values()