Python Django-可怕的';非序列上的迭代';
嗨,我正在寻找一个成员名单,根据他们的俱乐部来自哪里 这是我的代码:Python Django-可怕的';非序列上的迭代';,python,django,django-models,django-queryset,Python,Django,Django Models,Django Queryset,嗨,我正在寻找一个成员名单,根据他们的俱乐部来自哪里 这是我的代码: 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 =
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 = []
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)
除非查看成员模型,否则无法进行评论。但是
如果您的最终列表是成员列表,您可以像我上面提到的那样(至少以优化的方式)您可以发布
Member
model的源代码吗?什么是Member.objects.get_members
应该返回?我猜它会返回一个列表,但显然它不会(None
?).Member.objects.get\u members(club)
做什么,而club.Member\u set.all()
Member.objects.get\u members(club)会返回一个与该club相关联的用户查询集。club.member\u set.all()似乎不起作用。谢谢!通过复合查询和使用您的方法,我成功地解决了它!