如何在Django / Python中加入ManyToMany查询集

时间:2014-06-03 05:10:33

标签: python django

例如,我有2个模型:

class User(AbstractUser):
   achievement = models.ManyToManyField('Achievement')

class Achievement(models.Model):
    name = models.CharField(max_length=50)

我需要获得几个用户的所有成就,我认为应该是这样的:

for user in User.objects.filter(bla-bla):
  achievement_list += user.achievement

但它会返回错误"' ManyRelatedManager'对象不可迭代"

1 个答案:

答案 0 :(得分:3)

user.achievementManyRelatedManager,类似于Achievement.objectsManager的方式。请尝试使用user.achievement.all()user.achievement.filter(...)(使用您可能需要的任何过滤器)。