如何在 Django 中关联多个相同模型 related_name
How to relate multiple same models related_name in 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')
现在,我想为每部电影做出回应,以便电影可以判断这部电影是否有 one/more 个他们最喜欢的演员。
您可以简单地通过两个参数过滤 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()
我有两个模型 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')
现在,我想为每部电影做出回应,以便电影可以判断这部电影是否有 one/more 个他们最喜欢的演员。
您可以简单地通过两个参数过滤 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()