Django 如何筛选查询集
我想过滤通过过滤一次获得的查询集,但我不知道如何过滤 目前,我们正在从下面获取数据。 我想在这个条件下分别从表中获取数据 . 我只是不知道怎么做Django 如何筛选查询集,django,Django,我想过滤通过过滤一次获得的查询集,但我不知道如何过滤 目前,我们正在从下面获取数据。 我想在这个条件下分别从表中获取数据 . 我只是不知道怎么做 #查看 context\u data=super(成员,自身)。获取上下文数据(**kwargs) 组=归属.objects.get(用户=self.request.user).group 归属\查询集=归属.对象.过滤器(组=组) #我想将查询集应用于配置文件过滤器。 #profile\u queryset=profile.objects.filte
#查看
context\u data=super(成员,自身)。获取上下文数据(**kwargs)
组=归属.objects.get(用户=self.request.user).group
归属\查询集=归属.对象.过滤器(组=组)
#我想将查询集应用于配置文件过滤器。
#profile\u queryset=profile.objects.filter(归属\u queryset)
添加模型
#模型
类配置文件(models.Model):
user=models.OneToOneField(settings.AUTH\u user\u MODEL,on\u delete=models.CASCADE,)
first_name=models.CharField(u('first name'),max_length=30,blank=True)
last_name=models.CharField(u('last name'),max_length=150,blank=True)
类归属(models.Model):
user=models.ForeignKey(用户,on\u delete=models.CASCADE,相关的\u name='user\u profile')
组=models.ForeignKey(组,on_delete=models.CASCADE)
批准=模型.整数字段(默认值=0)
很抱歉,英文和解释都很糟糕。您可以使用两个连续的下划线(
\uuuu
)来查看关系:
context_data = super(members,self).get_context_data(**kwargs)
profile_queryset = profile.objects.filter(
user__user_profile__group__belong__user=self.request.user
)
# ...
你能分享一下你的相关模型吗(
profile
和alley
)?请告诉我你是否有其他必要的部分。这似乎很好。但因为级别很高,我会调查并解密!非常感谢。谢谢你的解释。我总算明白了!你能告诉我如果我想申请approval=1会发生什么吗?approval
在第一个属于、第二个属于或两者都属于中?这是第一个批准!谢谢你的补充。那真是帮了大忙!
related belong belongs of group
_____^____ __^_
/ \ / \
user__user_profile__group__belong__user
\_ / \_ _/ \ _/
v v v
user of profile group of belong user of belong
context_data = super(members,self).get_context_data(**kwargs)
profile_queryset = profile.objects.filter(
user__user_profile__group__belong__user=self.request.user,
user__user_profile__approval=1,
user__user_profile__group__belong__approval=1
)
# ...