gpt4 book ai didi

django - 从 Django 模板语言生成动态 HTML 表格

转载 作者:行者123 更新时间:2023-12-05 03:05:02 24 4
gpt4 key购买 nike

我正在尝试使用 django 模板语言 生成一个动态 html 表,但我还没有成功。

这是关于我的 Views.pytable.html

的一些信息

Views.py

Class table(TemplateView):
template_name = 'table.html'

def get(self, request):
header = {'header':['#', 'chemblID','Preferable Name']}
rows = {'rows':{
'id':[1,2,3],
'chemblid':[534988,31290, 98765],
'prefName':['A', 'B', 'C']}}

return render(request,self.template_name, header,rows)

(数据是硬编码的,因为我仍在测试。但是它应该会根据用户输入而改变。)

table.html

<table class="table">
<thead>
<tr>
{% for k in header %}
<th>{{k}}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for r in rows %}
<tr>
{% for e in r %}
<td>{{e.id}}</td>
<td>{{e.chemblid}}</td>
<td>{{e.prefName}}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>

我正在尝试生成这样的东西:

--------------------------------------------------------------
| # | chemblID | Preferable Name |
--------------------------------------------------------------
| 1 | 534988 | A |
--------------------------------------------------------------
| 2 | 31290 | B |
--------------------------------------------------------------
| 3 | 98765 | C |
--------------------------------------------------------------
| ... | ... | ... |
--------------------------------------------------------------

预先感谢您抽出宝贵时间

最佳答案

您可以使用 get_context_data 方法将上下文发送到您的模板

Class table(TemplateView):
template_name = 'table.html'

def get_context_data(self, **kwargs):
ctx = super(table, self).get_context_data(**kwargs)
ctx['header'] = ['#', 'chemblID','Preferable Name']
ctx['rows'] = [{'id':1, 'chemblid':534988,'prefName':'A'},
{'id':2, 'chemblid':31290,'prefName':'B'},
{'id':3, 'chemblid':98765,'prefName':'C'}]
return ctx

并且您可以删除 html 中的额外循环

<table class="table">
<thead>
<tr>
{% for k in header %}
<th>{{k}}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for r in rows %}
<tr>
<td>{{r.id}}</td>
<td>{{r.chemblid}}</td>
<td>{{r.prefName}}</td>
</tr>
{% endfor %}
</tbody>
</table>

关于django - 从 Django 模板语言生成动态 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51556583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com