【发布时间】:2011-07-14 03:57:34
【问题描述】:
我有一个场景,我必须将函数的输出传递给 Django 自定义过滤器。考虑对象:
class Money(object):
def __init__(self, amount):
self.amount = amount
class ConversionRate(object):
def GetEuroRate(self):
... some calculation and return a float value.
def GetGBPRate(self):
... some calculation and return a float value.
..... more functions.
我已将货币和转化率实例作为上下文变量传递。我试图通过不同的转化率。在此示例中,“money”和“conversion_rate”是上下文变量,分别引用 Money 对象和 ConversionRate 对象。
{{ money|convert:conversion_rate.GetEuroRate }}
我的过滤代码:
@register.filter
def convert(first_value, second_value):
"""Returns the product to two numbers."""
return float(first_value * float(second_value)
在我的自定义过滤器中,conversion_rate.GetEuroRate() 始终返回 0 而不是实际值。有没有办法传递函数的输出?
谢谢,
卡提克
【问题讨论】:
-
conversion_rate 应该是 ConversionRate 吗?对你到底想做什么感到困惑。
-
您的过滤器有代码吗?并且只是
{{ conversion_rate.GetEuroRate }}输出预期的结果? -
@jterrace:我更新了我的问题,以回应您的评论,添加更多说明。 @DrTyrsa:我在过滤器实现中打印出第二个值。它总是返回 0。
标签: python django django-templates django-filters