你不清楚你想做什麼。在您的功能中,我沒有看到min_val
的任何用法。
但讓我舉一個例子說明過濾器是如何工作的。 這裏是例如過濾器標籤
@register.filter
def keyvalue(dict, key):
"""Filter to fetch a dict's value by a variable as key"""
return dict.get(key, '')
使用過濾器標籤的
{{ weekday_dict|keyvalue:var }}
這裏weekday_dict是字典和'var'
關鍵是我要訪問。在keyvalue過濾器標籤中weekday_dict是第一個參數dict,var是第二個參數。
要傳遞多個參數,你可以參考link
總之你不能輕易地通過多個參數的過濾器標籤。你可以把它作爲逗號分隔值,或者使用多個過濾器將它們作爲在link
@register.filter(name='one_more')
def one_more(_1, _2):
return _1, _2
def your_filter(_1_2, _3)
_1, _2 = _1_2
print "now you have three arguments, enjoy"
{{ _1|one_more:_2|your_filter:_3 }}
更新由answeres的一個給定的: 正如我可以在你更新的問題可見。你並不需要通過多個參數 你的過濾器標記被定義爲:
@register.filter
def val_color(val, min_val):
if val >= min_val:
return 'red'
return 'black'
要使用這個標籤您可以更新您的模板代碼
{% for x in data.vals %}
<font color="{{ x|val_color:data.min_val }}">{{ x }}</font>
{% endfor %}
您還可以設置一些默認值,以第二參數,然後您不需要爲默認情況傳遞最小值。另外不要忘記在使用它們之前加載過濾器。有關標籤的更多詳細信息,請參閱link
可能的重複http://stackoverflow.com/questions/420703/how-do-i-add-multiple-arguments-to-my-custom-template-filter-in- a-django-templat – jcfollower