2012-02-26 74 views
1

我寫了一個包含標籤和兩個templatetags渲染投票代碼爲html,here you can see我可以在包含標籤中使用templatetags嗎?

正如你看到有渲染vote_buttons.html一個vote_buttons_for包含標籤。在模板內部,我嘗試使用is_up_voted_byis_down_voted_by templatetags在同一個文件中。它呈現模板,但模板標籤在沒有提供任何錯誤的情況下無法正常工作。

你想過它爲什麼會發生這樣的任何想法?

回答

2

所包含的模板,vote_buttons.html要求{{用戶}}上下文變量。 vote_button_for沒有以「用戶」項返回的字典。假設{{user}}應該是請求用戶,你可以使用類似這樣的東西:

@register.inclusion_tag('vote_buttons.html',takes_context=True) 
def vote_buttons_for(context, object, *args, **kwargs): 
    return { 
     "user": context['user'], 
     "object": object, 
     "vote_model": "%s.%sVote" % (
      object._meta.app_label, object._meta.object_name) 
    } 
+0

是的,我意識到後問。作爲將request.user附加到該上下文的註釋,包含標記應該具有'takes_context = True'參數。之後,你可以添加用戶對象作爲'「用戶」:context ['user']'...你可以[點擊這裏](https://github.com/miratcan/qhonuskan-votes/blob/fc9d0564d491541f6192892544c4d2b253561872/qhonuskan_votes/ templatetags/qhonuskan_votes.py#L32)來查看。 – 2012-02-27 08:00:57

+0

對,我忘記了,謝謝! – jpic 2012-02-27 10:33:53

+0

請關閉這個問題,我再次打開它,看看我能否改進我的答案......應該花時間處理一個未解決的問題。 – jpic 2012-02-28 01:44:53

相關問題