Построение 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] | ... ))
Как я могу построить этот запрос?