基于类视图的模板化
你可以将数据传递到自定义变量中的模板。
在你的 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 %}