python – django包含标记中的任意位置参数数量?
发布时间:2020-12-20 11:11:34 所属栏目:Python 来源:网络整理
导读:我正在尝试编写一个带有任意数量参数的 django包含标记: @register.inclusion_tag('so.html')def table_field(*args):fields = []for arg in args: fields.append(arg)return { 'fields': fields,} 但是,当我从django的模板引擎调用它时: {% table_field f
我正在尝试编写一个带有任意数量参数的
django包含标记:
@register.inclusion_tag('so.html') def table_field(*args): fields = [] for arg in args: fields.append(arg) return { 'fields': fields,} 但是,当我从django的模板引擎调用它时: {% table_field form.hr form.bp form.o2_sat %} 我收到错误: table_field takes 0 arguments 这是django模板引擎的另一个限制吗? 解决方法
从1.2.1开始,您可以将参数传递给包含标记.
这是我的mod到django投票模板标签的一个例子 @register.inclusion_tag("voting/vote_form.html",takes_context=True) def vote_form(context,vote_object,vote_dict,score_dict): if isinstance(vote_dict,dict): 模板看起来像: {% vote_form bookmark vote_dict score_dict %} 我不喜欢这个是没有办法命名参数,只是把它们整理好,但确实有效. 我现在不太清楚的是,为什么在指定take_context时,父上下文不会与您返回的上下文一起传递以用于呈现包含模板. 您尝试使用* args将无法正常工作,因为传递的args#是针对该函数进行检查的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |