【问题标题】:How to access a table record by id of another table in many to many relationship in django?如何通过 django 中多对多关系中另一个表的 id 访问表记录?
【发布时间】:2019-02-20 14:03:24
【问题描述】:

这是我的模型:

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

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

【问题讨论】:

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


    【解决方案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})
    

    【讨论】:

    • 谢谢 JPG。如何在模板中检索它们?我需要一个 for 循环吗?
    • 是的,两者都是 list 对象
    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 2017-06-25
    • 2019-07-01
    • 2013-04-27
    • 2017-08-08
    • 2012-06-16
    • 1970-01-01
    • 2014-01-10
    相关资源
    最近更新 更多