簡體   English   中英

Django-在模板內設置變量(或在參數為函數的情況下調用IF語句)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM