我想在我的数据库中将一个简单的查询显示为一个HTML表.但我在Django的数据管理模板或一般逻辑中遗漏了一些东西.
首先,我要创建一个这样的模型:
class Book(models.Model):
title = models.CharField(max_length=128, unique =True)
quantity = models.IntegerField(default=1)
然后创建一个包含查询的列名和查询对象的上下文的视图,例如:
def books(request):
context = {"rows":Book.objects.all(),"fields" : Book._meta.get_fields()}
return render(request,"blog/books.html",context)
最后,我try 迭代模板中的查询值,以便可以将它们放入一个HTML表中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Our Books</title>
</head>
<body>
<table border="1">
<thead>
<tr>
{% for field in fields %}
<th>{{ field.verbose_name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for row in rows %}
<tr>
{% for field in fields %}
<td>{{ 行[字段] }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
添加表头可以很好地工作,但此部分不起作用:
{% for row in rows %}
<tr>
{% for field in fields %}
<td>{{ 行[字段] }}</td>
{% endfor %}
</tr>
{% endfor %}
我try 了不同的东西,没有任何运气:
- 行[字段]
- 行[field.Verose_name]
- Row.field
- {{row.dict.get(field.Verbose_name)}}
- 还有更多
我应该如何继续呢?我不想在我的模板中硬编码列的名称,我想迭代它们,这样它就可以与任何表一起工作.