django - 如何在 Django 中编写更好的模板标签

标签 django django-templates

我已经了解了如何编写基于这样的模板设置上下文变量的模板标签

{% my_template_tag 'blah' as my_context_variable %}

但我希望能够做到这一点:

假设 groupuser 都在 View 的上下文中设置

{% is_in_group group user as is_member %}

{% if is_member %}
   #.... do stuff ....
{% endif %}

或者理想情况下是这样的:

{% if is_in_group group user %}
   # ....
{% end if %}

显然,反过来就是在 View 中设置 is_member - 但这只是一个例子,无论如何都知道如何做这样的事情会很好!

最佳答案

Evgeny 对 smart_if 模板标签有一个好主意。但是,如果这不起作用,您可能会发现为这种比较编写自定义过滤器更容易。像这样的东西:

@register.filter
def is_in(obj, val):
    return val is in obj

你会像这样使用它:

{% if user|is_in:group.users %}

关于django - 如何在 Django 中编写更好的模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1827976/

相关文章:

python - django:实例化 AdminSite 更改未反射(reflect)出来

python - 用 celery 在 django 中实现 zeromq publisher (Broker redis)

python - 找不到 GEOS 库

python - 将之前的参数传递给下一个 django 模板请求

python - Django 模板过滤器日期不起作用

django - 将列表作为参数传递给 django 标签

django - 如何将 django 智能选择与 modelform 一起使用?

django - 使用 Django 应用程序在 Heroku 上获取 Twitter 流

django - 如何从 django admin 中的内联类实例访问 modeladmin 类实例

django - 是否可以在不修改 Form 类的情况下使用 django-crispy-form FormHelper