Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-可怕的';非序列上的迭代';_Python_Django_Django Models_Django Queryset - Fatal编程技术网

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)

除非查看成员模型,否则无法进行评论。但是

  • 我们不能使用带反向导航的.filter,而不是get_成员吗
  • 我们是否需要这么多的循环,以及循环内的db访问?例:
  • clubs=Club.objects.filter(位置\国家\地区\用户\国家/地区列表)


    如果您的最终列表是成员列表,您可以像我上面提到的那样(至少以优化的方式)

    您可以发布
    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()似乎不起作用。谢谢!通过复合查询和使用您的方法,我成功地解决了它!