html - 如果 Django 模板中的条件不起作用

标签 html django django-templates

我已经根据 django 模板中定义的值尝试了 if 条件

{% if randomgen == 2 %}
<p style="float:right;text-align: center;padding:5px 5px;"><b>{% randomgen %}1</p>
{% else %}
<p style="float:right;text-align: center;padding:5px 5px;"><b>{% randomgen %} 2</p>
{% endif %}

randomgen 被定义为在 1 和 2 之间随机选择,并且该值在标签中正确显示,但无论值如何,它始终处于其他条件

register = template.Library()

@register.tag(name="randomgen")
def randomgen(parser, token):
    items = []
    bits =  token.split_contents()
    for item in bits:
        items.append(item)
    return RandomgenNode(items[1:])

    def render(self, context):
        arg1 = 0
        arg2 = 10
        if "float" in self.items:
            result = random.randint(1,20)
        elif not self.items:
            result = random.randint(1,20)
        else:
            result = random.randint(1,2)
        return result

最佳答案

在您的 HTML 中,设置 randomgen到另一个变量:

{% randomgen as rgen %}

然后为您的条件使用新设置的变量:
{% if rgen == 2 %}

老实说,我很惊讶您的代码不起作用,因为您的用法很直观。虽然知道它不起作用,但我的猜测是模板正在将一个函数与一个整数进行比较,该整数总是会返回 False。好问题!

关于html - 如果 Django 模板中的条件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62395970/

相关文章:

python - 如何访问django模板中的字典值

django - 在 Django 中使用 TemplateView 时设置 Mimetype

html - Css 列不会填充行高

html - Perl 在 HTML/XML 标签内的单词周围添加 <an></a>

html - div 底部的褪色文本?

python - Django 模板 : Translate include with variable

python - 在 django 中使用 python 格式化字符串

html - 将位于 anchor 标记中的图像居中

django - 为什么django在扩展后生成空字符串?

django - django中ImageField有哪些属性?