У меня есть список групп, и я хочу проверить, принадлежит ли пользователь какой-либо из групп.
Я могу получить список групп пользователей:
user_groups = user_object.groups.all()
И я могу использовать наборы:
if not set(user_object.groups.all()).isdisjoint(group_list):
Это лучший способ?
Добавлено:
group_list
происходит из поля многие ко многим от другой модели (MyClass.groups_allowed.all()
)
class MyClass(models.Model):
...
groups_allowed = ManyToManyField(Group, default=None, blank=True)
...
def user_can_view(self, user_object):
...
if not set(user_object.groups.all()).isdisjoint(self.groups_allowed.all()):
return True
...