我有一个html文件index.html,它显示了一个mySQL表:
<body>
<div class="container">
<table align="center">
<tr>
<th bgcolor="#f0a00c">Col1</th>
<th bgcolor="#f0a00c">Col2</th>
<th bgcolor="#f0a00c">Col3</th>
<th bgcolor="#f0a00c">Col4</th>
<th bgcolor="#f0a00c">Col5</th>
</tr>
{% for b in obj %}
<tr>
<td>{{ b.col1 }}</td>
<td>{{ b.col2 }}</td>
<td>{{ b.col3 }}</td>
<td>{{ b.col4 }}</td>
<td>{{ b.col5 }}</td>
</tr>
{% endfor %}
</table>
</div> <!-- /container -->
</body>
我想从b.col2
&amp; b.col3
放入单独的列表中。所以,我试图按如下方式添加它:
{% for b in obj
var c1 = [];
c1.push(b.col1);
var c2 = [];
c2.push(b.col2);
%}
但它不起作用。什么是正确的方法?
更新:
这是我的views.py:
def display(request):
find_duplicate()
return render_to_response('index.html', {'obj': my_model.objects.order_by('id')})
def get_dict():
d={}
for e in my_model.objects.all():
col2 = e.col2
col3 = e.col3
col2 = unicode(col2).encode('UTF8')
col3 = unicode(col3).encode('UTF8')
d.setdefault(col2, [])
d[col2].append(col3)
del d['']
return d
def find_duplicate():
#print(d)
d = get_dict()
for k,v in d.items():
if len(v) > 1:
name=[]
id=[]
#print(k)
for i in v:
#print(i)
reg1 = i.split("(")[0]
name.append(reg1)
reg2 = re.search(r'[A-Z0-9]*', i.split("_")[1])
id.append(reg2.group())
#print(name)
#print(id)
所以表格如下:
Number | NameAndId
1 | Name1(something_1234)
1 | Name2(something_3456)
2 | Name3(something_7890)
2 | Name4(something_0988)
因此字典d
的输出是:
{'1': ['Name1(something_1234)', 'Name2(something_3456)'], '2': 'Name3(something_7890)', 'Name4(something_0988)']}
然后它解析find_duplicate
函数中的col2:
因此,该函数中的print(name)
将为每个键(num)
提供名称和ID,即['Name1', 'Name2']
&amp;密钥['1234', '3456']
的{{1}}。所以,我想在每个键的名称和id部分上应用一些CSS样式。那么,如何将1
函数的结果传递给html?
答案 0 :(得分:0)
看起来您正在尝试创建包含这些元素的JavaScript列表,您可以使用此代码段创建两个包含b.col2
和b.col3
<body>
<div class="container">
<table align="center">
<tr>
<th bgcolor="#f0a00c">Col1</th>
<th bgcolor="#f0a00c">Col2</th>
<th bgcolor="#f0a00c">Col3</th>
<th bgcolor="#f0a00c">Col4</th>
<th bgcolor="#f0a00c">Col5</th>
</tr>
{% for b in obj %}
<tr>
<td>{{ b.col1 }}</td>
<td>{{ b.col2 }}</td>
<td>{{ b.col3 }}</td>
<td>{{ b.col4 }}</td>
<td>{{ b.col5 }}</td>
</tr>
{% endfor %}
</table>
</div> <!-- /container -->
<script>
var c2 = [], c3 = [];
{% for b in obj %}
c2.push("{{ b.col2 }}");
c3.push("{{ b.col3 }}");
{% endfor %}
console.log([c2, c3]);
// ... Do what you need to do in javascript with these lists.
</script>
</body>