Ranc58
@Ranc58
Backend python developer

Как отфильтровать ArrayField по всем возможным элементам?

День добрый!
Есть модель, имеющая ArrayField roles:

class User(AbstractBaseUser, PermissionsMixin):
    username = models.CharField(_('Username'), max_length=50, blank=True)
    email = models.CharField(_('Email'), null=True, max_length=200)
    first_name = models.CharField(_('First name'), null=True, max_length=200)
    last_name = models.CharField(_('Last name'), null=True, max_length=200)
    middle_name = models.CharField(_('Middle name'), null=True, max_length=200)
    roles = ArrayField(models.IntegerField(_('Roles')), blank=True, default=list)

Есть 2 инстанса этой модели, имеющие такие значения в данном поле:
1){37, 73}
2){37}

Необходимо отфильтровать все это дело по некому списку. Для примера тут [37, 73]. Проблема в том, что на выходе должны быть все совпадения , т.е. тут это будет [User_1, User_2, User_1].
Если делаю так:
User.objects.filter(roles__overlap=[37, 73])
То на выходе ожидаемо получаю [User_1, User_2]. Мне же необходимо получить совпадение как по 37, так и по 73.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы