在django模板中将unicode解码为字符串

时间:2014-10-13 17:04:32

标签: python django mongodb unicode scrapy

我试图遍历数据库并在django模板中输出结果。我完成了所有工作,但它输出html中的以下每个项目:

  

[u' AMD',u' A10-7700K,3,4 GHz(3,8 GHz Turbo Boost)FM2 +处理器']

     

[u' \ n 3.400 MHz \ xa0 \ n',u' \ n 4核心\ xa0 \ n',u' \ n FM2 + \ xa0 \ n& #39]

记录。我希望它输出为没有unicode的普通字符串。我试了很多东西,但似乎都没有。我会写下我尝试的所有事情,但老实说,我甚至无法跟踪所有这些事情。

我收到了以下django文件,我只会写下相关内容:

views.py:

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 %}

我试着简单地将step()放在processor.naam之后,但是它也不起作用。什么工作是在processor.naam之后添加0然后我当然只得到第一个索引,它将是&#34; AMD&#34;。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

这与Unicode无关。你有一个项目列表,你需要迭代它们。

{% for name in processor.naam %}{{ name }}{% endfor %}

答案 1 :(得分:0)

对于Django不熟悉MongoEngine,将unicode值转换为字符串非常简单,这有助于您暂时解决问题,直到找到问题的根源。

objects = Processoren.objects.filter(categorie__contains='Processor')[:10]
processoren = [str(p.naam) for p in objects]

同样,我不知道使用该引擎在查询集上可用的方法,因此在这种情况下我避免使用values_list。我还不确定您需要输出哪个属性,所以我只使用了naam