在模板中过滤后访问模型元素
Access to the model element after filtering in the template
在模板中应用过滤器后我无法访问模型字段,如下所示:
{{service_item_v|get_first|first|get_item:'price'.service}}
问题是它抛出错误:
TemplateSyntaxError at /payment/
Could not parse the remainder: '.service' from 'service_item_v|get_first|first|get_item:'price'.service'
如果您从点中删除字段名称,则该元素会正确找到。元素也有这个字段,因为如果你不应用过滤器它就会得到它。
问题是在这种情况下如何访问该字段?
你只需要把"with"过滤的结果换个名字就行了。然后你可以访问元素的属性。
你不能那样使用它,它不是这样工作的。因为我们看不到你的过滤器在做什么,我可以建议两件事:
创建另一个过滤器或向您的过滤器添加更多参数get_item:'price,service'
然后在您的过滤器拆分值中:
def get_item(value):
values_list = value.split(",")
# do something with values from the list
在您的模型中创建一个函数而不是模板过滤器并在那里进行过滤。
def get_item(self):
price = # your logic
return price.service
然后在您的模板中 {{ service_item_v.get_item }}
在模板中应用过滤器后我无法访问模型字段,如下所示:
{{service_item_v|get_first|first|get_item:'price'.service}}
问题是它抛出错误:
TemplateSyntaxError at /payment/
Could not parse the remainder: '.service' from 'service_item_v|get_first|first|get_item:'price'.service'
如果您从点中删除字段名称,则该元素会正确找到。元素也有这个字段,因为如果你不应用过滤器它就会得到它。
问题是在这种情况下如何访问该字段?
你只需要把"with"过滤的结果换个名字就行了。然后你可以访问元素的属性。
你不能那样使用它,它不是这样工作的。因为我们看不到你的过滤器在做什么,我可以建议两件事:
创建另一个过滤器或向您的过滤器添加更多参数
get_item:'price,service'
然后在您的过滤器拆分值中:def get_item(value): values_list = value.split(",") # do something with values from the list
在您的模型中创建一个函数而不是模板过滤器并在那里进行过滤。
def get_item(self): price = # your logic return price.service
然后在您的模板中 {{ service_item_v.get_item }}