2011-03-05 36 views
1

我有一個觀點以下查詢集:Django的values_list返回的Unicode

cities = Idea.published.values_list('city', flat=True).distinct() 

而在我相應的模板如下:

{% for city in cities %} 
    <li><a href="{% url ideas-by-city city %}">{{ city }}</a></li> 
{% endfor %} 

的{{城市}}變量打印出來作爲一個字符串在呈現的頁面上,但傳遞到url標記的城市變量被表示爲unicode:即u('city')。如何正確地將這個變量傳遞給url標記?

謝謝。

+0

你得到你('城市')?用括號? unicode應該看起來像u'city'。檢查你的城市模型的def __unicode __(self)方法,看看它是否沒有返回有趣的東西。 – DTing 2011-03-05 07:26:57

+0

Argh。這不是一個「unicode」表示。這是**元組**的表示形式,其**內容(如所有Django字符串)都是unicode。你的urlconf可能有問題。請顯示您獲得的確切輸出。 – 2011-03-05 08:47:01

+0

是的,謝謝澄清。它是一個內含unicode表示的元組。如果我在這個{{city}}模板中打印它,它會顯示爲「Philadelphia」。但是,如果我在{%url%}標記中使用此標記,例如{%url ideas by-city city%},我會得到以下模板錯誤:呈現NoReverseMatch時出現以下情況:Reverse for'ideas-by-city' (u'Philadelphia',)'和關鍵字參數'{}'未找到。 – 2011-03-05 15:52:08

回答

0

你可能想

iriencode

{{ value|iriencode }}。有關更多信息,請參見the Django builtins docs

+0

謝謝,但似乎並沒有這樣做。仍然得到這個錯誤:在呈現時捕獲NoReverseMatch:對於'具有參數'的城市想法'(u'Philadelphia',)'和關鍵字參數'{}'沒有找到。 – 2011-03-05 15:54:15

相關問題