【发布时间】:2018-04-23 16:50:42
【问题描述】:
我在 Django 中遇到了多对多关系。
这是我的模型:
class Actors(models.Model):
name = models.CharField(verbose_name="Actor's name", max_length=128)
# other stuff
class Meta:
verbose_name = "Actor"
ordering = ["name"]
def __str__(self):
return self.name
class Movies(models.Model):
title = models.CharField(verbose_name="Movie's title", max_length=128)
casting = models.ManyToManyField("models.Actors", verbose_name="Actors")
# other stuff
class Meta:
verbose_name = "Movie"
ordering = ["title"]
def __str__(self):
return self.title
我希望打印一位演员出演的所有电影。 所以在我的演员看来,我得到了:
def actor(request, id):
actor = get_object_or_404(Actors, id=id)
# Trying to get the movies played by the actor
# -> goal : filter the casting field and compare
# the actors_id in movies_movies_actors to
# the id parameter
movies = Movies.casting.filter(actors_id=id)
return render(request, 'actors/actor.html.twig', {'actor': actor, 'movies': movies})
我没有找到正确的方法来访问强制转换字段并获取出现“id”的所有行。
你能帮帮我吗?
谢谢
【问题讨论】:
-
Movie.objects.filter(casting_id=actor)
标签: django many-to-many