我在Django中运行以下查询以传递到模板
release_list = Releases.objects.filter(id=release_id).values('all_artists','label_no_country','id','title','genre')
context_dict['releases'] = release_list
然后我想将genre
数据传递到视图中的另一个查询,例如
genre_list = Releases.objects.filter(genre=genre).values()
context_dict['genre_list'] = genre_list
如何从第一个查询中访问genre
数据?
答案 0 :(得分:1)
事情是
release_list = Releases.objects.filter(...).values('genre', ...)
表现得像一个包含您要求的密钥的对象列表,因此您可以获得许多 genre
值,而不是一个
如果这就是你想要的那么
for release in release_list:
genre = release['genre']
genre_list = Releases.objects.filter(genre=genre).values()
或者您可以从中提取所有genre
值
genres = [release['genre'] for release in release_list]
然后你可以,例如像这样使用它
genre_list = Releases.objects.filter(genre__in=genres)
或者您可以传递对象而不是值,这可以像这样工作:
release = Releases.objects.get(...)
SomeModel.objects.filter(genre=release.genre)