如何在 Django 模型选择中使用 unicode 字符?
Posted
技术标签:
【中文标题】如何在 Django 模型选择中使用 unicode 字符?【英文标题】:How to have unicode characters in Django model choices? 【发布时间】:2015-07-11 17:40:50 【问题描述】:我正在尝试在字段选择中使用特殊字符。我有以下代码:
CHOICES = (('1', 'b'),
('2', 'p'),
('3', 'm'),
...
('11', 'ɾ'),
...)
field = models.CharField(choices=CHOICES, max_length=10, null=True, blank=True)
但是,当 Django 呈现该字段的选择列表时,我得到的是:
<option value="11">&#638;</option>
我尝试手动打印特殊字符并且它有效。但出于某种原因,Django 正在将 &amp;
转换为 &amp;
【问题讨论】:
【参考方案1】:使用 Python Unicode 对象作为标签:
CHOICES = (('1', 'b'),
('2', 'p'),
('3', 'm'),
...
('11', u'\u027e'),
...)
Django 会在渲染时对字符进行编码。
【讨论】:
以上是关于如何在 Django 模型选择中使用 unicode 字符?的主要内容,如果未能解决你的问题,请参考以下文章
在 ModelChoiceField Django 中使用 __unicode__ 以外的方法
django模型中的__str__()方法和__unicode__()方法
django - 模型 unicode() 显示外键对象属性
如何从 Django 中的 __unicode__() 函数中查询数据差异