Построение DQL с помощью множественного Q-фильтра

У меня есть класс AppUser и AppUserGroup

и каждый AppUser имеет один тип, а AppUserGroup имеет несколько типов

class AppUser(BaseModel):
    user_type = m.ForeignKey('UserType', on_delete=m.SET_NULL, null=True, blank=True,default=1)

class AppUserGroup(BaseModel):
    user_types = m.ManyToManyField('UserType',blank=True)

Теперь я хочу получить AppUser, который имеет тип, который имеет AppUserGroup, как показано ниже fetch_users

class AppUserGroup(BaseModel):
    user_types = m.ManyToManyField('UserType',blank=True)
    def fetch_users(self):
        app_users = []
        for user_type in self.user_types:
            temp = AppUser.objects.filter(type=user_type)
            app_users.append(temp) 

Однако это неверный путь, потому что app_users не является списком AppUser.

И я звоню AppUser.objects.filter много раз.

Я хочу называть db более просто, например

AppUser.objects.filter(Q(type=user_types[0] | Q(type=user_types[1] | ... ))

Как я могу построить этот запрос?

Вернуться на верх