为啥 django 中的 Simple 标签不起作用?

Posted

技术标签:

【中文标题】为啥 django 中的 Simple 标签不起作用?【英文标题】:Why the Simple tag in django is not working?为什么 django 中的 Simple 标签不起作用? 【发布时间】:2020-01-01 05:43:33 【问题描述】:

我制作了一个自定义标签来在我的代码中设置一个标志(用于逻辑)。 我使用link 作为设置标志的参考。

这是我的自定义标签的代码:


from django import template

register = template.Library()

@register.simple_tag
def update_variable(value):
    data = value
    return str(data)

我的应用目录:

├── admin.py
├── apps.py
├── database_consistency.py
├── forms.py
├── __init__.py
├── models.py
├── templatetags
│   ├── __init__.py
│   └── vars.py
├── tests.py
├── urls.py
└── views.py

基本上我正在尝试在模板中设置一个标志:

                        <!--Diamonds:-->
                        <!--Initialized diamond_flag-->
                        % with diamond_flag as False %
                        % for diamond in item.diamonds.all reversed %
                          % update_variable False as diamond_flag %
                          % if forloop.first and diamond.rate != 0 %
                                     ...
                            <!--Trying to update the flag-->
                            % update_variable "True" as diamond_flag %
                          % endif %
                        % endfor %
                          % if diamond_flag == "True" or diamond_flag == "1" or diamond_flag == 1 or diamond_flag == True  %
                            <td>Working</td> <!--This line is not working, the code never runs-->
                            <td>-</td>
                          % endif %


我希望代码之间的标志值为 True,以便以下“if”条件为真,代码相应地运行。

【问题讨论】:

【参考方案1】:

您必须在模板中加载模板标签“vars.py”。 示例:

    % load vars %
    <!--Diamonds:-->
    <!--Initialized diamond_flag-->

看过here

【讨论】:

我已经在模板顶部加载了变量,否则会产生错误。

以上是关于为啥 django 中的 Simple 标签不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 模板标签中传递请求

为啥在 Django 管理员的 save() 覆盖中将站点添加到对象似乎不起作用?

多维动态数组,为啥不起作用?

为啥我在 Vue 中的移动标签效果不起作用?

为啥这个(Django)“过滤器”功能不起作用?

为啥 html 的输入标签中的多个属性不起作用?