为什么μ在django的管理员中显示为M?

时间:2011-02-08 20:21:30

标签: django unicode character-encoding django-admin

我在django模型中使用以下代码来格式化管理界面中的列:

def formatted_mu(self):
    return "%.1f%%" % self.mu
formatted_mu.short_description = u'\u03BC'

出于某种原因,它不是在标题中显示μ,而是显示M.我知道这应该像我尝试过的那样工作''u3A3'我确实收到了Σ。

编码参考:

更新
我发现其他小写的希腊字母也与他们的资本同行一起转换。有什么方法可以避免这种情况吗?

3 个答案:

答案 0 :(得分:3)

M是资本Mu。西格玛看起来与众不同,但资本 - 穆看起来像我们的M.

答案 1 :(得分:2)

Django将任何字段的第一个字母大写

答案 2 :(得分:1)

您可以通过在models.py中的模型定义的Meta类中设置verbose_model_plural,并使用您想要的设置和空格作为第一个字符来避免大写模型名称。

,例如,

class SomeModel(models.Model):
     class Meta:
         verbose_name_plural = u' \u03BC'

EDIT1:我的初始解决方案不起作用,因为django总是将第一个字母大写为verbose_name_plural(尽管它不会自动将其他字母转换为小写,就像管理员通常对模型名称所做的那样。)但是,制作详细名称的第一个字母是空格,它有效。请注意,因为名称位于html表中(忽略第一个/最后一个字符之前的空格),所以详细模型名称中的空格不会被用户注意到。

EDIT2:或者避免大写字段名称(抱歉 - 没有仔细阅读问题)。

class AnAverageModel(models.Model):
     mean = models.FloatField(u" \u03BC")