たとえば、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'オブジェクトは反復可能ではありません」というエラーが返されます。
user.achievement
は、ManyRelatedManager
と同様に、Achievement.objects
ですManager
。代わりに、user.achievement.all()
またはuser.achievement.filter(...)
(必要なフィルターを使用して)試してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加