如何在python中将查询结果映射到HTML表



我有两张表:Driver和Car

from django.db import models
# Create your models here.
class Driver(models.Model):
name = models.TextField()
license = models.TextField()
class Car(models.Model):
make = models.TextField()
model = models.TextField()
year = models.IntegerField()
vin = models.TextField()
owner = models.ForeignKey("Driver", on_delete=models.SET_NULL, null=True)

下面是表格中的数据:

INSERT INTO car_driver (name, license)
VALUES ('John Smith', 'ZX1092931i'),
('Karen Doe', 'KOanksndan');

INSERT INTO car_car (make, model, year, vin, owner_id)
VALUES
('Mercedes', 'Legend', 2009, '912asdasda12', 1),
('Nissan', 'Altima', 2002, 'a9a98aa7a772', 1),
('Lada', 'Kalina', 1987, 'SU91991', 2),
('BMW', 'Challenger', 2013, 'BM91818X', 2);

无论我做什么类型的查询,我都希望显示一个空的html表,并根据查询结果填充

from django.shortcuts import render
from car.models import Car, Driver
# Create your views here.

def car_detail(request, pk):
owner_obj = Driver.objects.get(pk=pk)
car_objs = Car.objects.filter(owner_id=owner_obj.id)
context = {
"vehicles": car_objs,
"drivers": owner_obj,
}
return render(request, "v2.html", context)

这是html:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Contacts</title>
<link rel="stylesheet" href="https://unpkg.com/tachyons@4.10.0/css/tachyons.min.css"/>
</head>
<body>
<h1>V2</h1>
<table>
{% block page_content %}
<tr>
<th></th>
</tr>
{% endblock %}
</table>

</body>
</html>

我来自Node/Express,我在那里的方法是使用array.map((,但如何在python/django中做到这一点?我不知道如何使用{%…%}

根据您的视图,上下文对象中的"vehicles"将是与"driver"对应的查询集。由于"driver"将是一个单独的对象,我相信,您希望基于上下文对象的"vehicles"创建一个表。您可以在包含所有列名的上下文对象中再创建一个键值对。

<table>
<thead>
<tr>
{% for column in column_names %}
<td>{column}</td>
{% endfor %}
</tr>
</thead>
<tbody>
{% for car in car_obj %}
<tr>
<td>{car.make}</td>
<td>{car.model}</td>
<td>{car.year}</td>
<td>{car.vin}</td>
</tr>
{% endfor %}
</tbody>
</table>

在您的表中执行以下操作:

{% for item in context.vehicles %}
<tr>{{ item.make }}</tr> 
{% endfor %}

最新更新