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

时间:2018-09-16 12:50:32

标签: python django database python-3.x django-models

这是我的模特:

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}}

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

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

1 个答案:

答案 0 :(得分:1)

如果您要访问与 电影 实例关联的所有流派,请
使用 movie_info.genre.all() 。如果您想访问 genre_eng ,请使用.values_list()

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})