前提・実現したいこと
Djangoを用いてブログを構築しております。
viewで外部キーを含んだquerysetを作成し、templateに渡しているのですが、templateでは外部キーを表示することができません。
###該当のソースコード
■view.py
class TagListView(generic.ListView): template_name = 'blog/tag_list.html' context_object_name = 'latest_post_list_in_tag' def get_queryset(self): """return the last five published questions.""" return BlogPostTag.objects.select_related().filter( post_id__status=2 #公開の記事のみ ).all()
■model.py
class BlogPost(models.Model): title = models.CharField(max_length=200) content = models.TextField() status = models.IntegerField(default=1, choices=[(1, '下書き'), (2, '公開')]) created = models.DateTimeField(editable=False, default=datetime.now) updated = models.DateTimeField(editable=False, default=datetime.now) class BlogTag(models.Model): name = models.CharField(max_length=200) class BlogPostTag(models.Model): post = models.ForeignKey(BlogPost, on_delete=models.CASCADE) tag = models.ForeignKey(BlogTag, on_delete=models.CASCADE)
■template
{% if latest_post_list_in_tag %} {{ latest_post_list_in_tag.values }}
■ 結果
<QuerySet [{'id': 1, 'post_id': 2, 'tag_id': 1}]>
本来は BlogPost
のデータも取得したいのですが、 BlogPostTag
しか返ってきません。
###試したこと
以下の記事を参考に get_queryset
で .values()
のカッコ内に取得したいデータを書けば問題なく取得できたのですが、修正があるたびにvaluesを書き換えないといけないのは手間なので、外部キーをすべて取得する方法をご教示いただけると幸いです。
https://stackoverflow.com/questions/18119119/acess-foreign-key-on-django-template-from-queryset-values

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2017/07/19 13:57