Django manytomany filter with contains

У меня есть groups в моем приложении, которое может иметь несколько employees и несколько modules

class GroupModels(models.Model):

    model_choices = (('Product', 'Product'), ('Kit', 'Kit'), ('Vendor', 'Vendor'), ('Warehouse', 'Warehouse'))

    model = models.CharField(max_length=500, choices=model_choices)


class Group(models.Model):

    name = models.CharField(max_length=500, default=0)
    modules = models.ManyToManyField(GroupModels)
    employees = models.ManyToManyField(Employee)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)

Теперь при создании разрешений для определенного модуля, например Product, я хочу проверить, есть ли этот модуль у пользователя employee в любой из групп. Как мне это сделать?

Я создал две группы с пользователем, одна из которых содержит продукт, а другая нет, и использую это :

     abc = Group.objects.filter(employees__pk=request.user.pk, modules__model='Product').exists()
        print('abc', abc)
        return abc

Правильно ли это?

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