Чтобы внедрить систему делегирования в мое приложение Django, у меня есть самообращающаяся связь «многие ко многим» в моей модели «персона»:
from django.contrib.auth.models import AbstractUser
from django.db import models
class Person(AbstractUser):
delegates = models.ManyToManyField("self", symmetrical=False, blank=True, null=True, default=None)
Я считаю, что есть две ловушки (способыинициировать бесконечные рекурсии) для этого подхода:
- Если пользователь A назначил себя делегатом (возможно, глупо, но выполнимо)
- Если пользователь A установил пользователя B в качестве делегата, а пользователь B установил пользователя Aв качестве делегата
Каков был бы правильный подход, чтобы избежать таких случаев?