Django M2M подал проверку для определенных вариантов - PullRequest
0 голосов
/ 28 июня 2019

У меня есть ситуация, когда у меня есть несколько вариантов типа для модели в Django.я готов подтвердить при выполнении операций творога на поле M2M?

Вот пример модели Django:

class Employee(models.Model):
TYPE_CHOICES = (
    (1, 'OWNER'),
    (2, 'STAFF')
)

name = models.CharField(max_length=30, blank=True)
type = models.SmallIntegerField(choices=TYPE_CHOICES, default=2)
staffs = models.ManyToManyField('self', symmetrical=False)

def __str__(self):
    return f'{self.id}: {self.name}: {self.type}'

def clean(self):
    """How to validate if adding staff is of type `STAFF`?"""
    """would like to check type of child object here?"""
    pass

Как я могу проверить все объекты персонала при добавлении сотрудников для объекта владельца, чтобы владелец мог иметь дочерние объекты только в качестве персонала?


staff = Employee.objects.create(name='emp1')
owner = Employee.objects.create(name='emp1', type=1)
owner.staff.add(staff) 
...