我在 views.py 文件中运行 SQL 查询,根据返回的值,我需要在 .html 文件的列中显示不同的数据。
如果:
customer_id 不为 null,则详细信息列应显示 customer_id 和名称。
如果:
customer_id 为空,则详细信息列应显示部门名称和描述。
因此,数据库中有数字。有些分配给客户,有些分配给部门。该表的基本目的是显示数字列表及其分配的内容。
@render_to('customer/available_numbers.html')
def AvailableNumbers(request):
cur = NumberList()
sql = '''
SELECT
cpt.number,
cpt.call_type,
cpt.customer_id,
cpt.profile_id
c.name,
pro.department_name,
pro.description
FROM customerphonetable AS cpt
LEFT OUTER JOIN customer AS c
ON (cpt.customer_id = c.customer_id)
LEFT OUTER JOIN profile AS pro
ON (cpt.profile_id = pro.profile_id)
WHERE cpt.number IS NOT NULL
'''
cur.execute(sql)
rows = [dictify(row) for row in cur]
return dict(rows=rows, cnt=len(rows))
def dictify(row):
return dict(zip([cd[0] for cd in row.cursor_description], row))
NumberList() 连接到数据库。
设置 html 文件以显示如下数据:
{% block content %}
<table class ="table table-striped table-bordered">
<thead>
<tr>
<th>Phone Number</th>
<th>Call Type</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
{% for row in rows %}
<tr>
<td>{{ row.number }}</td>
<td>{{ row.call_type }}</td>
<td>{{ ???? }}</td>
</tr>
{% endfor %}
</tbody>
</table>
我已经测试了 SQL 查询,它正在从数据库中提取正确的数据。我迷失了如何过滤结果并根据标准正确显示输出。
有什么建议么?如果我缺少任何信息,请告诉我。谢谢你。