在模板中应用过滤器后,我无法访问模型字段,如下所示:
{{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'
如果从点中删除字段名称,则元素会正确找到。此元素也有此字段,因为如果您不应用过滤器,它就会获得它。
问题是在这种情况下如何访问该字段?
答案 0 :(得分:1)
您只需将过滤结果通过“with”置于另一个名称下。之后,您可以访问元素的属性。
答案 1 :(得分:0)
你不能以这种方式使用它,它不是它的工作方式。因为我们无法看到你的过滤器在做什么,所以我可以提出两点建议:
创建另一个过滤器或向过滤器df["list_ids"] = df["list_ids"].apply(lambda x: [val for val in x if val in good_ids])
print(df)
# phase list_ids
#id
#a1 1 [a2, c3]
#a2 3 [b2, c3]
#b1 3 [a2, b2]
#b2 2 [b1, b2]
#b3 3 [b2]
#c1 1 [a2, c3]
#c2 1 [b1]
#c3 2 []
#c4 1 []
添加更多参数
然后在您的过滤器拆分值:
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