Python 在django模板中将unicode解码为字符串
我正在尝试循环遍历数据库,并在django模板中输出结果。我完成了所有这些工作,但它在html中输出的每个项目如下所示: [u'AMD',u'A10-7700K,3,4 GHz(3,8 GHz涡轮增压)FM2+处理器'] [u'\n 3.400 MHz\xa0\n',u'\n 4芯\xa0\n',u'\n FM2+\xa0\n'] 记录在案。我希望它输出为普通字符串,而不使用unicode。我尝试了很多方法,但似乎都不管用。我会写下我尝试过的所有事情,但老实说,我甚至都记不住 我得到了以下django文件,我只写下相关的部分: views.py:Python 在django模板中将unicode解码为字符串,python,django,mongodb,unicode,scrapy,Python,Django,Mongodb,Unicode,Scrapy,我正在尝试循环遍历数据库,并在django模板中输出结果。我完成了所有这些工作,但它在html中输出的每个项目如下所示: [u'AMD',u'A10-7700K,3,4 GHz(3,8 GHz涡轮增压)FM2+处理器'] [u'\n 3.400 MHz\xa0\n',u'\n 4芯\xa0\n',u'\n FM2+\xa0\n'] 记录在案。我希望它输出为普通字符串,而不使用unicode。我尝试了很多方法,但似乎都不管用。我会写下我尝试过的所有事情,但老实说,我甚至都记不住 我得到了以下dja
def processoren(request):
processoren = Processoren.objects(categorie__contains='Processor')[:10]
#processoren = json.dumps(list(processoren)
return render_to_response('processoren.html', {'Processoren': processoren},
context_instance=RequestContext(request))
models.py:
from django.db import models
from mongoengine import *
from APc.settings import DBNAME
connect(DBNAME)
class Processoren(Document):
categorie = StringField(max_length=120)
naam = StringField(max_length=500)
subnaam = StringField(max_length=500)
info = StringField(max_length=500)
stock = StringField(max_length=500)
enter code hereprijs = StringField(max_length=120)
processoren.html:
{% extends "base.html" %}
{% load static %}
{% block content %}
<div class="container">
<div class="col-md-4 col-lg-2">
</div>
<div class="col-md-8 col-lg-10">
<div class=" top-margin">
<h1>Processoren</h1>
{% for processor in Processoren %}
<div class="list-group">
<div class="list-group-item">
<div class="row-picture">
<img class="square" src="http://lorempixel.com/56/56/people/1" alt="icon">
</div>
<div class="row-content">
<h4 class="list-group-item-heading">{{ processor.naam }}</h4>
<p class="list-group-item-text">{{ processor.info }}</p>
<p class="list-group-item-text pull-right">{{ processor.prijs }}</p>
<p class="list-group-item-text pull-right">{{ processor.stock }}</p>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
{% endblock %}
{%extends“base.html”%}
{%load static%}
{%block content%}
加工工
{Processoren%中处理器的%n}
{{processor.naam}
{{processor.info}
{{processor.prijs}
{{processor.stock}
{%endfor%}
{%endblock%}
例如,我试图简单地将str()放在processor.naam之后,但这也不起作用。工作原理是在processor.naam之后添加0,但我当然只得到第一个索引,即“AMD”。任何帮助都将不胜感激。由于不熟悉MongoEngine关于Django的内容,将unicode值转换为字符串非常简单,希望在解决问题的根源之前,这将暂时帮助您
objects = Processoren.objects.filter(categorie__contains='Processor')[:10]
processoren = [str(p.naam) for p in objects]
同样,我不知道在使用该引擎的查询集上有哪些方法可用,因此在本例中我避免使用
values\u list
。我也不确定需要输出哪个属性,所以我只使用了naam,这与Unicode无关。如果您有一个项目列表,则需要对其进行迭代
{% for name in processor.naam %}{{ name }}{% endfor %}
你确定这一行:
processoren=processoren.objects(categorie\uu contains='Processor')[:10]
不是processoren=processoren.objects.filter(categorie\uu contains='Processor')[:10]
?我不确定.filter()有什么作用,但遗憾的是它给出了同样的结果。你使用的是Django的非rel分支吗?或者?不,至少据我所知不是这样。我使用mongoengine连接mongodb。我不太熟悉使用该引擎。我可以向您展示一种将unicode值转换为字符串的方法,但我不确定这是解决问题根源的最佳方法。这至少给了我一点帮助。非常感谢!是的,我一直在想,但我不知道如何在django模板中通过它们进行迭代。例如,我尝试了processor.naam.0:5,但这不起作用。我也找不到任何相关文件。谢谢你的帮助!我已经发布了一个例子。