我编写了一个小的 django 自定义模板标签 (inclution_tag),我想用它来显示一个 html 表格,其中显示了我的 VehicleBrand 和 VehicleModel 模型中的车辆品牌和型号列表,但是模板标签似乎没有传递变量从模板标签中的数据库查询到html。我是 django 的新手,所以如果我遗漏了一些明显的东西,请告诉我。任何帮助将不胜感激。
这是我的模板标签,它位于我的应用程序下的模板目录中。模板标签目录包含一个 _ init _.py
from django import template
from castester.models import VehicleBrand
register = template.Library()
@register.inclusion_tag("brand_model_select.html")
def brand_model_select():
brand_list = VehicleBrand.objects.all()
return {'brand_list':brand_list}
这是我的model.py
from django.db import models
class VehicleBrand(models.Model):
description = models.CharField(max_length=100)
code = models.SlugField(primary_key=True)
这是我的brand_model_select.html
{% load castest_extras %}
<table>
{% for brand in brand_list %}
<tr>
<td>{{ brand.code }}</td>
<td>{{ brand.description }}</td>
</tr>
{% endfor %}
</table>
这是我从基于类的视图中调用我的 html 的 urls.conf 行。
url(r'^$', TemplateView.as_view(template_name='brand_model_select.html'))
这是模型查询的输出,以证明正在从数据库中检索数据。
>>> from castester.models import VehicleBrand
>>> VehicleBrand.objects.all().values()
[{'code': u'1', 'description': u'FORD'}, {'code': u'2', 'description': u'HOLDEN'}]
使用以下源呈现空白页面。我从包含标签传递的查询输出在哪里?
<table>
</table>