День добрый!
Есть модель, имеющая 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.