Цикл в полях ManyToMany в модели Django - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть такая модель:

class MyProfile(models.Model):
      club = models.ManyToManyField(Club, default=None)
      city = models.ManyToManyField(City, default=None)
      .
      .

В поле зрения:

user = User.objects.get(pk=id)
profile = MyProfile.objects.select_related().get(user=user)

Например, profile.club.select_related() Я могу найти клуб пользователя. Но я хочу сделать это в цикле.

fileds = [car, club]
for f in fileds:
        print getattr(profile, f)

На выходе у меня есть <django.db.models.fields.related.ManyRelatedManager object at 0x9876545> Но с profile.club.select_related() я могу получить название клуба пользователя. Я не могу использовать этот запрос в цикле. Можно ли использовать такой запрос для списка полей модели?

Заранее спасибо

1 Ответ

5 голосов
/ 12 декабря 2011

Эти поля совпадают с полем «объекты» в классе MyProfile. Добавление .all () и приведение его к списку.

fields = [car, club]
for f in fields:
    z = getattr(profile, f)
    print list(z.all())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...