我有一個觀點以下查詢集: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標記?
謝謝。
你得到你('城市')?用括號? unicode應該看起來像u'city'。檢查你的城市模型的def __unicode __(self)方法,看看它是否沒有返回有趣的東西。 – DTing 2011-03-05 07:26:57
Argh。這不是一個「unicode」表示。這是**元組**的表示形式,其**內容(如所有Django字符串)都是unicode。你的urlconf可能有問題。請顯示您獲得的確切輸出。 – 2011-03-05 08:47:01
是的,謝謝澄清。它是一個內含unicode表示的元組。如果我在這個{{city}}模板中打印它,它會顯示爲「Philadelphia」。但是,如果我在{%url%}標記中使用此標記,例如{%url ideas by-city city%},我會得到以下模板錯誤:呈現NoReverseMatch時出現以下情況:Reverse for'ideas-by-city' (u'Philadelphia',)'和關鍵字參數'{}'未找到。 – 2011-03-05 15:52:08