Как связать несколько одинаковых моделей related_name в django

У меня есть две модели Movie и Actor

class Actor(models.Model):
    id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False)
    name = models.CharField(name="name", max_length=2000, blank=True, null=True)

class Movie(models.Model):
    id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False)
    name = models.CharField(name="name", max_length=2000, blank=True, null=True)
    actors = models.ManyToManyField(Actor, related_name='movie_actor')

Теперь я хотел бы позволить пользователям добавлять своих любимых актеров, например

class MyUser(AbstractUser):
    actors = models.ManyToManyField(Actor, related_name='user_actor')

Теперь я хотел бы сделать ответ для каждого фильма, чтобы киноманы могли сказать, есть ли в этом фильме один/несколько их любимых актеров или нет?

Вы можете просто отфильтровать объекты Actor по двум параметрам, чтобы получить всех актеров в your_movie, которым благоприятствует your_user.

Actor.objects.filter(movie_actor = your_movie, user_actor = your_user)

Если вы просто хотите проверить, существуют ли любимые актеры, добавьте метод exists().

Actor.objects.filter(movie_actor = your_movie, user_actor = your_user).exists()

Чтобы определить, есть ли в фильме один или несколько любимых актеров данного пользователя:

has_favorite_actors = movie.actors.filter(user_actor=user).exists()
Вернуться на верх