Django: Filter a Queryset made of unions not working

前端 未结 3 1565
一向
一向 2021-02-13 14:53

I defined 3 models related with M2M relationsships

class Suite(models.Model):
    name = models.CharField(max_length=250)
    title = models.CharField(max_length         


        
3条回答
  •  萌比男神i
    2021-02-13 15:36

    As stated in django docs, only count(), order_by(), values(), values_list() and slicing of union queryset is allowed. You can't filter on union queryset.

    That means, you have to apply filters on queries before applying union on them.

    Also, you can achieve your goal without even using union():

    Suite.objects.filter(role_set__users=self.get_user(), name="energia")
    

    You may need to adjust field name in filter if you've used related_name or related_query_name in definition of suites M2M field in Role model.

提交回复
热议问题