Python Django模板:将编号的img加载到html
我试图循环数据库计数以在html中插入img,但无法使{static}命令正常工作。具体而言: 从views.py导入列表:Python Django模板:将编号的img加载到html,python,html,django-templates,Python,Html,Django Templates,我试图循环数据库计数以在html中插入img,但无法使{static}命令正常工作。具体而言: 从views.py导入列表: queryset = db_imNewChk.objects.exclude(N_tag=u'').order_by("d_Rank") for p in queryset: if (p.gp_Email): if (c_email): if not("<
queryset = db_imNewChk.objects.exclude(N_tag=u'').order_by("d_Rank")
for p in queryset:
if (p.gp_Email):
if (c_email):
if not("<li><a href=\"#\"><img src=\"{% static '/img/email_icon"+p.gp_Email+".png' %}\" width=\"20%\" style=\"padding: 3px\"></a></li>" in c_email):
c_email.append("<li><a href=\"#\"><img src=\"{% static '/img/email_icon"+p.gp_Email+".png' %}\" width=\"20%\" style=\"padding: 3px\"></a></li>")
else:
c_email.append("<li><a href=\"#\"><img src=\"{% static '/img/email_icon"+p.gp_Email+".png' %}\" width=\"20%\" style=\"padding: 3px\"></a></li>")
...
return render(request, 'exportnews.html', {'table': listExport, 'table2': listExport1, 'table_count': q_size, 'count_email' : sorted(c_email)})
queryset=db\u imNewChk.objects.exclude(N\u tag=u'').order\u by(“d\u Rank”)
对于queryset中的p:
如果(p.gp\U电子邮件):
如果(c_电子邮件):
如果没有(c_电子邮件中的“”):
c_email.append(“ ”)
其他:
c_email.append(“”)
...
返回呈现(请求,'exportnews.html',{'table':listExport,'table2':listExport1,'table_count':q_size,'count_email':排序(c_email)})
然后在django模板exportnews.html中:
{% load static %}
<td style="width:350px;height:80px;" rowspan="3" colspan="2">
<ul class="images">
{% for field in count_email %}
{{field|safe}}
{% endfor %}
</ul></td>
{%load static%}
{count_email%}中的字段为%
{{field | safe}}
{%endfor%}
我想要达到的目标是:
<li><a href="#"><img src="http://127.0.0.1:8000/static/img/email_icon1.png' %}" width="20%" style="padding: 3px"></a></li>
<li><a href="#"><img src="http://127.0.0.1:8000/static/img/email_icon2.png' %}" width="20%" style="padding: 3px"></a></li>
<li><a href="#"><img src="http://127.0.0.1:8000/static/img/email_icon3.png' %}" width="20%" style="padding: 3px"></a></li>
但是,呈现的html代码如下所示:
<li><a href="#"><img src="{% static '/img/email_icon1.png' %}" width="20%" style="padding: 3px"></a></li>
<li><a href="#"><img src="{% static '/img/email_icon2.png' %}" width="20%" style="padding: 3px"></a></li>
<li><a href="#"><img src="{% static '/img/email_icon3.png' %}" width="20%" style="padding: 3px"></a></li>
因此,{%static%}似乎不起作用。有人能就解决这个问题提出建议吗?非常感谢 这就是
safe
过滤器的作用,它可以一字不差地呈现内容。您应该在模板中保留html呈现。简化您的视图:
# views.py
...
c_email = set() # easier than list
queryset = db_imNewChk.objects.exclude(N_tag=u'').order_by("d_Rank")
for p in queryset:
if p.gp_Email:
c_email.add(p.gp_Email)
...
return render(request, 'exportnews.html', {..., 'count_email': sorted(c_email)})
然后,在模板中渲染内容,例如使用过滤器。您必须将与
构造一起使用,因为:
{count\u email%中foo的百分比]
{%带有“/img/email_icon”| add:foo | add:“.png”作为static_bar%}
{%endwith%}
{%endfor%}
哇,非常感谢!它起作用了。以前还没有学习过Python中的set,这些新用法给我们上了很好的一课!
{% for foo in count_email %}
{% with '/img/email_icon'|add:foo|add:'.png' as static_bar %}
<li><a href="#"><img src="{% static static_bar %}" width="20%" style="padding: 3px"></a></li>
{% endwith %}
{% endfor %}