Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:查询多对多关系_Django_Many To Many - Fatal编程技术网

Django:查询多对多关系

Django:查询多对多关系,django,many-to-many,Django,Many To Many,我在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)

我在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”的所有行

你能帮我吗


Thx

如果我的记忆正常,那么下面的语法应该就是您要查找的语法

movies = Movies.objects.filter(casting__actors_id=id)

如果我没记错的话,下面的语法应该是你要找的

movies = Movies.objects.filter(casting__actors_id=id)

相关的\u name
功能更强大:

def actor(request, id):
    actor  = get_object_or_404(Actors, id=id)
    movies = actor.movies_set.all()
    return render(request, 'actors/actor.html.twig', {'actor': actor, 'movies': movies})

相关的\u name
功能更强大:

def actor(request, id):
    actor  = get_object_or_404(Actors, id=id)
    movies = actor.movies_set.all()
    return render(request, 'actors/actor.html.twig', {'actor': actor, 'movies': movies})

Movie.objects.filter(角色扮演者)Movie.objects.filter(角色扮演者)很高兴能提供帮助!很高兴能帮上忙!