如何将三个变量传递给自定义模板标签?
How to pass three variable to custom template tag?
我想将 3 个变量传递给我的自定义过滤器,但我做不到。 Django有没有这种可能?
{{ item.cost|pay_blago:'{{item.can_pay_blago_to_currency}}, {{item.rest}}'}}
@register.filter
def pay_blago(cost, args):
print(args.split(','))
Django 只允许一个参数。您可以将其作为 list/tuple 发送并在过滤器内拆分。
也有一张带有(wontfix 标志)的票
https://code.djangoproject.com/ticket/1199
如果您需要某个 Item
实例的函数,最简单的方法是在 Item
上定义 属性。在模板中,例如,
{{item.cost_pay_blago}}
和 Item
模型
# this is needed by template foo/bar.html
@property
def cost_pay_blago( self):
result = # some value based on self.cost, self.rest and self.can_pay_blago_to_currency
return result
如果 item
不是模型实例,或者如果该函数汇集了来自多个对象的数据,您可能会在视图中计算它并将其放入您渲染模板所针对的上下文中。
或者您可以使用 Jinja 模板引擎,但如果它是一个小螺母,那么使用它是一个非常大的锤子。
我想将 3 个变量传递给我的自定义过滤器,但我做不到。 Django有没有这种可能?
{{ item.cost|pay_blago:'{{item.can_pay_blago_to_currency}}, {{item.rest}}'}}
@register.filter
def pay_blago(cost, args):
print(args.split(','))
Django 只允许一个参数。您可以将其作为 list/tuple 发送并在过滤器内拆分。
也有一张带有(wontfix 标志)的票 https://code.djangoproject.com/ticket/1199
如果您需要某个 Item
实例的函数,最简单的方法是在 Item
上定义 属性。在模板中,例如,
{{item.cost_pay_blago}}
和 Item
模型
# this is needed by template foo/bar.html
@property
def cost_pay_blago( self):
result = # some value based on self.cost, self.rest and self.can_pay_blago_to_currency
return result
如果 item
不是模型实例,或者如果该函数汇集了来自多个对象的数据,您可能会在视图中计算它并将其放入您渲染模板所针对的上下文中。
或者您可以使用 Jinja 模板引擎,但如果它是一个小螺母,那么使用它是一个非常大的锤子。