当前位置: 代码迷 >> python >> 如何在Django中通过多对多关系按另一个表的ID访问表记录?
  详细解决方案

如何在Django中通过多对多关系按另一个表的ID访问表记录?

热度:28   发布时间:2023-06-19 09:14:27.0

这是我的模特:

class Movie(models.Model):
    genre = models.ManyToManyField(Genre)

class Genre(models.Model):
    genre_eng = models.CharField(max_length=200)
    def __str__(self):
        return "{}".format(self.genre_eng)

这是我的查看方法:

def info(request, id):
    movie_info = Movie.objects.get(id=id)
    return render(request,'info.html', {'movie_info': movie_info})

我已经可以在info.html文件中打印出电影的名称了:

genre : {{movie_info.title}}

如何访问info.html文件中的genre_eng

每部电影可能有多种类型。

如果要访问与Movie实例关联的所有流派
使用movie_info.genre.all() 如果要访问genre_eng使用

def info(request, id):
    movie_info = Movie.objects.get(id=id)
    genre_eng_queryset = movie_info.genre.all() genre_eng_values = movie_info.genre.values_list('genre_eng', flat=True)
    return render(request, 'info.html',
                  {'movie_info': movie_info, 'genre_eng_queryset': genre_eng_queryset, 'genre_eng_values': genre_eng_values})