2011-11-07 29 views
2

我最近開始學習Python/Django作爲一個整體,試圖加快我的學習速度,同時做一些建設性的工作,我開始了自己的個人項目。更改返回輸出在Django中的顯示方式

我有最新的Django/Python/Jinja2與Python Battle.net API蛋一起安裝。 目前我查詢了「性格」,我試圖改變返回值的輸出,這裏是從我的觀點功能:現在

def viewCharacter(request, name): 
    character = get_object_or_404(Member, name=name) 
    info = Character('EU', 'Auchindoun', name, fields=[Character.GUILD]) 

    ctx = { 'character': character, 'info': info, 'guildname': 'Guild Name' } 
    return render_to_response("roster/viewCharacter.html", ctx, request) 

,在我的模板,我已經試過「翻譯「info.class_(它返回一個數值)從它的數值到一個字符串(類名),但我總是收到有關info.class_不能用於if/for語句/循環的錯誤消息或其他錯誤。 (試圖比較它是一個二元組)

我真的無法找到一種方法來做到這一點在線,所以我來到了一個地方,在我的學習過程中幫助了我最多。

任何幫助將不勝感激! - Nieeru

+0

你能粘貼你的模板代碼嗎?你如何翻譯'_class'? – Lycha

+0

這主要是通過試驗和錯誤。我沒有模板代碼,因爲我已經開始試圖從頭開始做這件事! – Nieeru

回答

0

如果你真的需要使用模板類名,請嘗試使用this模板過濾器,或者只是把它在視圖中,並通過在上下文:)

+0

我會試試看,謝謝! – Nieeru

0

是否有任何理由,你不能另一個變量添加到上下文像這樣:

CTX = { '字符':字符, '信息':信息, '類':再版(info.class_), 'guildname': '公會名稱'}

編輯:隨着你提供的額外信息,這裏是我的新建議。

變化:

ctx = { 'name': name, 'character': character, 'info': info, 'class': repr(info.class_), 'guildname': 'Team-Potato' } 

到:

ctx = { 'name': name, 'character': character, 'info': info, 'className': classnameDict[info.class_], 'guildname': 'Team-Potato' } 

這根本類查找在視圖中。現在將其添加到您的模板使用

{{className}}

+0

根本不是!我接受所有建議。 – Nieeru

+0

正確。看看我的觀點 def viewCharacter(request,name): \t character = get_object_or_404(Member,name = name) \t info = Character('EU','Auchindoun',name,fields = [Character.GUILD] ) \t classnameDict = {1:'Warrior',2:'Paladin',3:'Hunter',4:'Rogue',5:'Priest',6:'Death Knight',7:'Shaman',8 :'法師',9:'術士',10:'未知',11:'德魯伊',} \t ctx = {'name':name,'character':character,'info':info,'class ':repr(info.class_),'guildname':'Team-Potato'} \t return render_to_response(「roster/viewCharacter.html」,ctx,request) 我怎麼去翻譯info.class新的字典? – Nieeru

+0

模板中沒有必要的翻譯(這就是'repr'的作用),只需使用模板中的新變量輸出:{{class}} –

相關問題