我的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__
返回列值解决了问题