Djangoのobject_listの名前を変更する方法
object_listの名前を変更したい
Djangoで以下のようなサンプルコードのようにget_querysetで取得した値をHTML側で表示したい!ってことがあります。
サンプルコード
class Sample(generic.ListView):
model = Sample
def get_queryset(self):
return Sample.objects.all()
その際にHTML側では、ListViewで自動的に生成されるコンテキスト変数のobject_listまたは、「モデル名 + list」でsample_listで参照することができますよね!
ただこれだとわかりにくので、任意のわかりやすいものに変更したい!って時の方法をご紹介します。
自動的に生成されるコンテキスト変数を変更する方法
context_object_nameに名前を指定する
自動生成されるコンテキスト変数を変更する方法は簡単です。
このように、context_object_nameに名前を指定すると、その名前でHTMLから参照できるようになるのです!
context_object_name = "items"
例えばこのように、context_object_name = "items"としてitemsと名前を指定します。
class Sample(generic.ListView):
model = Sample
context_object_name = "items"
def get_queryset(self):
return Sample.objects.all()
HTML側では、指定したitemsという名前で参照することができるのです!
{% for item in items %}
{{ item }}
{% endfor %}
参考サイト
https://wonderwall.hatenablog.com/entry/2018/03/31/001500
https://docs.djangoproject.com/ja/2.2/intro/tutorial04/
← Go home