2011-09-09 33 views
0

返回英鎊符號(£),如果我有以下幾點:在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 ...我的問題是我怎麼輸出「£」標誌,以及該領域?

回答

1

這很難回答這個問題很好,沒有看到如何將這些不同的方法沒有工作,並且知道你的「輸出」的意思 - 你在模板中是什麼意思?但是這可能有一些可能的方式,這可能會出錯。

  1. 當您嘗試£時,它是否會被轉義?如果是這樣,您可能需要在字符串上運行mark_safe(假設它是安全的!),或者在模板中使用|safe過濾器。
  2. 你可以嘗試返回一個unicode字符串,其中有£的轉義版本 - 這是u'\xa3'
+0

+1這聽起來像一個模板的問題,所以mark_safe可能是我用你的第二個選項「\ XA3 \」你answwer感謝答案 – Cez

+0

。 – Alex

0

你嘗試返回\ XC2 \ XA3?

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

現貨!非常感謝我使用'\ xa3'。 – Alex