2012-02-26 78 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

相关问题