python - Django - 在模板中设置变量(或调用参数为函数的 IF 语句)

标签 python django django-templates

我有一个 (template tag - 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

关于python - Django - 在模板中设置变量(或调用参数为函数的 IF 语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27609856/

相关文章:

python - 在 Django 中对富文本字段使用安全过滤器

python - anaconda 中使用的 python 的 Gcc 版本

python - 如何在Python中查找字符串中的偶数

css - django 在 css 中使用图像

python 列表神秘地设置为我的 django/活塞处理程序中的某些内容

javascript - 加载新页面而不刷新当前页面

python - Django 模板过滤器查询集

python - 从文件列表中去除标点符号

python - 在线求职很乏味。帮我自动化

mysql - 在现有数据库上安装 South 时出现问题。 MySql 不支持 'schema-altering statements'