[英]Django - Setting variable inside a template (or calling IF statement where argument is a function)
我有一個(模板標簽-simple_tag)函數,該函數接受1個參數(和上下文)並返回一個字符串。 因此,調用{% myfunction var1 %}
將返回一個字符串(取決於var1)。
現在,我想在if語句中使用它,例如: {% if myfunction var1 == 'some string' %}
。 顯然這是行不通的,因此我嘗試首先將返回的字符串保存到變量中,然后在if語句中使用它。
但是{% myfunction var1 as var2 %}
不起作用,因為它將“ as var2”視為第二個函數參數,並且出現“接收到太多的位置參數”錯誤。
我也嘗試過“ with”語句,但是它也不起作用...
那么如何將函數返回值保存到變量中,或者如何在if語句中直接使用函數呢?
您可以使用django.template.Library.assignment_tag()
注冊模板標簽,然后在模板中使用{% myfunction var1 as var2 %}
。 https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#assignment-tags
您可以將其設為過濾器而不是標簽。 然后可以在if語句中使用它:
{% if var1|myfunction == 'some string' %}
以及獨立的:
{{ var1|myfunction }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.