例如,我有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'对象不可迭代"
答案 0 :(得分:3)
user.achievement
是ManyRelatedManager
,类似于Achievement.objects
是Manager
的方式。请尝试使用user.achievement.all()
或user.achievement.filter(...)
(使用您可能需要的任何过滤器)。