Django模板中的Unicode异常

时间:2017-06-06 14:28:32

标签: python django unicode django-templates django-views

我的Django应用程序具有从DB读取的unicode字符,它们将显示在模板上。

这是我在视图和模板中尝试的内容:

views.py

# -*- coding: utf-8 -*-
from .models import keywords as m
def newdata(request):

    keywords = m.objects.all()
    template = loader.get_template('keywords.html')
    context = Context({
        'keywords': keywords,
           })
    #return HttpResponse(template.render(context))

    #return HttpResponse(meanings)
    return render(request, 'keywords.html',context) 

我正在尝试使用js函数在我的模板中的选择列表中使用数据库中的关键字,如下所示

模板

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</html>
        <select id="keyword1" name="keyword1" onChange="add_to_text1();">
          <option  value="" selected="selected">---SELECT---</option>
            {% for post in keywords %}
        <!-- here keyword has unicode strings -->
           <option value="{{post.id}}">{{post.keyword}}</option>
          {% endfor %}
        </select>
    <input type="hidden" name="key1" value='' id='key1'/> 


    function add_to_text1() {


        var e = document.getElementById("keyword1");
        var str = e.options[e.selectedIndex].text;
        var selected_keyword_id=e.options[e.selectedIndex].value;
        document.getElementById("key1").value = selected_keyword_id;

        "{% for each in keywords %}"
            var x="{{ each }}";
            var other_form=x.split(" - ")[0];
            var el=other_form+"({{ each.id }})"

            var opt = document.createElement('option');
            opt.value = "{{each.id}}";
            opt.innerHTML = el;
            select.appendChild(opt);



        "{% endfor %}"
    }

这是我尝试打开tempalte页面时遇到的错误

  

异常值:'ascii'编解码器无法对字符u'\ xe9'进行编码   位置4:序数不在范围内(128)不能的字符串   编码/解码的是:entrée - a

,错误显示在

var x=" {{ each }}"

我尝试在其他帖子中添加编码:utf-8在我的视图中以及模板中的类似配置。

我仍然面临着这个问题。有人可以帮助我理解问题是什么

由于

更新

在模型中使用__unicode__返回列值解决了问题

0 个答案:

没有答案