📜  firstof – Django 模板标签

📅  最后修改于: 2022-05-13 01:55:08.836000             🧑  作者: Mango

firstof – Django 模板标签

Django 模板是使用 Django 模板语言标记的文本文档或Python字符串。 Django 是一个强大的包含电池的框架,为在模板中呈现数据提供了便利。 Django 模板不仅允许将数据从视图传递到模板,而且还提供了一些有限的编程功能,例如变量、for 循环、注释、firstof 等。
本文围绕如何在模板中使用firstof 标签展开。 firstof tag 输出第一个不为“假”的参数变量(即存在、不为空、不是假布尔值且不是零数值)。如果所有传递的变量都是“假”,则不输出任何内容。

句法

{% firstof var1 var2 var3... %}

例子

{% firstof var1 var2 var3 %}

这相当于:

{% if var1 %}
    {{ var1 }}
{% elif var2 %}
    {{ var2 }}
{% elif var3 %}
    {{ var3 }}
{% endif %}

如果所有传递的变量都是 False,也可以使用字面量字符串作为后备值:

{% firstof var1 var2 var3 "fallback value" %}

firstof – Django 模板标签说明

使用示例说明如何在 Django 模板中使用 firstof 标记。考虑一个名为 geeksforgeeks 的项目,它有一个名为 geeks 的应用程序。

现在创建一个视图,我们将通过它访问模板,
在 geeks/views.py 中,

Python3
# import Http Response from django
# import Http Response from django
from django.shortcuts import render
 
# create a function
def geeks_view(request):
    # create a dictionary
    context = {
        "var1":None,
        "var2":None,
        "var3":"GeeksForGeeks"
    }
    # return response
    return render(request, "geeks.html", context)


Python3
from django.urls import path
 
# importing views from views.py
from .views import geeks_view
 
urlpatterns = [
    path('', geeks_view),
]


html

Variable displayed :

  {% firstof var1 var2 var3 %}


创建一个 url 路径以映射到此视图。在 geeks/urls.py 中,

Python3

from django.urls import path
 
# importing views from views.py
from .views import geeks_view
 
urlpatterns = [
    path('', geeks_view),
]

在 templates/geeks.html 中创建一个模板。

html

Variable displayed :

  {% firstof var1 var2 var3 %}

让我们检查一下 geeks.html 中的第三个变量是否显示了数据

firstof-Django 模板标签

高级用法

此标签自动转义变量值。您可以使用以下方法禁用自动转义:

{% autoescape off %}
    {% firstof var1 var2 var3 "fallback value" %}
{% endautoescape %}

或者,如果只需要转义一些变量,您可以使用:

{% firstof var1 var2|safe var3 "fallback value"|safe %}

您可以使用语法 {% firstof var1 var2 var3 as value %} 将输出存储在变量中。