时间:2011-09-09 09:22:39

标签: django

如果我有以下内容:

class PayBand(models.Model):
    name = models.CharField(max_length=2)
    lower_limit = models.IntegerField()
    upper_limit = models.IntegerField()
    def __str__(self):
        return "%s (%s - %s)" % (self.name, self.lower_limit, self.upper_limit)
    def __unicode__(self):
        return u'%s (%s - %s)' % (self.name, self.lower_limit, self.upper_limit)

我如何归还'£'?

我认为它会是:

    def __str__(self):
        return "%s (£%s - £%s)" % (self.name, self.lower_limit, self.upper_limit)

但那不起作用(显然!),所以我试过了:

    def __str__(self):
        return "%s (£%s - £%s)" % (self.name, self.lower_limit, self.upper_limit)

但这不起作用,只是输出了£ ...

Soooo ......我的问题是如何输出'£'符号以及字段?

2 个答案:

答案 0 :(得分:1)

很难回答这个问题,如果不了解这些不同的方法是如何工作的,并且知道“输出”是什么意思 - 你的意思是在模板中吗?但是,这可能是出错的几种可能方式。

  1. 当您尝试£时,它是否会被转义?如果是这样,您可能需要在字符串上运行mark_safe(假设它是安全的!),或者使用模板中的|safe过滤器。
  2. 您可以尝试返回一个unicode字符串,其中包含转义版本的£ - u'\xa3'

答案 1 :(得分:0)

您是否尝试过返回\ xc2 \ xa3?

>>> str("£")
'\xc2\xa3'