Django - страшная «итерация по непоследовательности»

Привет! Я хочу заполнить список участников, в зависимости от того, откуда взялся их клуб.

Это мой код:

 members = []
 if userprofile.countries.count() > 0:
     for c in userprofile.countries.all():
         clubs = Club.objects.filter(location__country = c)
         for club in clubs:
             members_list = Member.objects.get_members(club)
             for m in members_list:
                 members.append(m)

Однако, при оценке для m в members_list: он выбрасывает «итерацию по непоследовательности»

. не совсем уверен, почему? Кто-нибудь может дать мне какие-нибудь идеи?!

РЕДАКТИРОВАТЬ:

Решается с помощью следующего:

members = []
if userprofile.countries.count() > 0:
            members_list = member.objects.filter(memberstoentities__club__location__country__in = userprofile.countries.all())
            for m in members_list:
                members.append(m)
1
задан Once_functional 25 August 2010 в 15:04
поделиться

1 ответ

Невозможно комментировать, если не смотреть на модель Member. Но

  1. Разве мы не можем использовать .filter с обратной навигацией вместо get_members
  2. Нужны ли нам эти многочисленные циклы и доступ к базе данных внутри цикла? пример:

club = Club.objects.filter (location__country__in = list_of_user_countries)

Если ваш окончательный список является списком участников, вы можете сделать это, как я упоминал выше (по крайней мере, оптимизированным способом)

2
ответ дан 2 September 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: