基於類檢視的模板化
你可以將資料傳遞到自定義變數中的模板。
在你的 views.py
:
from django.views.generic import TemplateView
from MyProject.myapp.models import Item
class ItemView(TemplateView):
template_name = "item.html"
def items(self):
""" Get all Items """
return Item.objects.all()
def certain_items(self):
""" Get certain Items """
return Item.objects.filter(model_field="certain")
def categories(self):
""" Get categories related to this Item """
return Item.objects.get(slug=self.kwargs['slug']).categories.all()
你的 item.html
中的簡單列表:
{% for item in view.items %}
<ul>
<li>{{ item }}</li>
</ul>
{% endfor %}
你還可以檢索資料的其他屬性。
假設你的模型 Item
有一個 name
欄位:
{% for item in view.certain_items %}
<ul>
<li>{{ item.name }}</li>
</ul>
{% endfor %}