Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.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 使用set from _set.all()并使用集合中的u进行筛选_Python_Django_Django Queryset - Fatal编程技术网

Python 使用set from _set.all()并使用集合中的u进行筛选

Python 使用set from _set.all()并使用集合中的u进行筛选,python,django,django-queryset,Python,Django,Django Queryset,说我是部落首领,俯瞰着有部落活动。我有3种型号: class Hunter: tribes = models.ManyToManyField(Tribe) info class Missions: user = models.ForeignKey(User) info class Tribe: tribe_chief = models.ForeignKey(User) #directed towards Chief info 作为一名酋长,我有

说我是部落首领,俯瞰着有部落活动。我有3种型号:

class Hunter:
   tribes = models.ManyToManyField(Tribe)
   info

class Missions:
    user = models.ForeignKey(User)
    info

class Tribe:
    tribe_chief = models.ForeignKey(User) #directed towards Chief
    info
作为一名酋长,我有 views.py(tribepk通过URL传递)

所以除了所有的任务,所有的东西都会被填充。是否可以使用_set.all()结果作为筛选条件?谢谢

如果有帮助,这就是myhunters中返回的内容->

'myhunters': [<Hunter: test>, <Hunter: asdf>, <Hunter: more>]
“myhunters”:[,]

所以任务有一个
的ForiegnKey
用户
,而不是
猎人
。因此,您在传递
Hunter
实例时,它需要一个用户列表

您可以更改您的模型,使您的
Hunter
模型中有一个
ForiegnKey
User

class Hunter:
   tribes = models.ManyToManyField(Tribe)
   user = models.ForiegnKey(User)

allmissions = Mission.objects.filter(user__id__in=[myhunter.user.id for myhunter in myhunters])
或者你可以让
任务
有一个
ForiegnKey
猎人

class Missions:
    user = models.ForeignKey(Hunter)
    info

allmissions = Mission.objects.filter(user__in=myhunters)

编辑:正如阿米尔·阿德南在评论中指出的那样,更新第一个选项的查找成本较低。

因此任务有一个
ForiegnKey
用户
而不是
猎人
。因此,您在传递
Hunter
实例时,它需要一个用户列表

您可以更改您的模型,使您的
Hunter
模型中有一个
ForiegnKey
User

class Hunter:
   tribes = models.ManyToManyField(Tribe)
   user = models.ForiegnKey(User)

allmissions = Mission.objects.filter(user__id__in=[myhunter.user.id for myhunter in myhunters])
或者你可以让
任务
有一个
ForiegnKey
猎人

class Missions:
    user = models.ForeignKey(Hunter)
    info

allmissions = Mission.objects.filter(user__in=myhunters)

编辑:正如Aamir Adnan在评论中指出的那样,更新第一个选项的查找成本较低。

Hunter模型中是否有
user
字段?Hunter模型中是否有
user
字段?我更新了答案以反映当前问题。@TimEdgar如果您愿意,我会很高兴的可以使用查找中的用户id
user\uu id\uu in=[myhunter.user.id for myhunter in myhunter]
来降低查找成本。我更新了答案以反映当前问题。@TimEdgar如果您可以使用查找中的用户id
user\uu id\uu in=[myhunter.user.id for myhunter in myhunter in myhunters]
以降低查找成本。