【问题标题】:Using filters on Django 2.0在 Django 2.0 上使用过滤器
【发布时间】:2018-07-13 22:51:11
【问题描述】:

请帮忙找出错误原因。 有两个对象从我的视图中返回:

def managment_users_form(request):

    users = User.objects.all()
    usersinfo = usersinfo_model.objects.all()
    count_objects = users.count()
    if request.user.is_authenticated:
        username = request.user.username
        context = {
            'users': users,
            'usersinfo': usersinfo,
            'count_objects': count_objects,
        }
        return render(request, 'users.html', context)
    else:
        return redirect('login_form')

在我的模板上,我想从第一个循环开始,并在另一个循环中按 id 过滤。第一个运行良好,但第二个在尝试使用过滤器时出现错误。

模板

{% for user in users %}
<div class="">
    <h4 class="m-b-5">{{ user.first_name }} {{ user.last_name }}</h4>
        <p class="text-muted">{{ useremp|user_info_filter:user.id }} <span></p>
    </div>
{% endfor %}

过滤器

from django import template

register = template.Library()

@register.filter(name='user_info_filter')
def user_info_filter(useremp, id):
    return useremp.filter(user_id=id)

请帮助理解错误。 错误是:“无效的过滤器:'user_info_filter'”

【问题讨论】:

  • 您是否将{% load modulename %} 添加到您的模板中?检查此文档:docs.djangoproject.com/en/2.0/howto/custom-template-tags/…
  • 我试过了,但是出现下一个错误:
  • TemplateSyntaxError at /managment/users/ 'user_info_filter' 不是注册标签库。必须是以下之一: admin_list admin_modify admin_static admin_urls cache i18n l10n log static staticfiles tz
  • 您是否将user_info_filter.py 放入app_name/templatetags 中?并确保每次修改模板标签时都重新启动 Django 开发服务器(或确保它自行重新启动)。

标签: python django django-templates django-template-filters


【解决方案1】:

您是否将过滤器添加到 settings.py 中?从 1.9 Django 开始需要它

前:

'OPTIONS': {
    'context_processors': [
        'django.template.context_processors.debug',
        'django.template.context_processors.request',
        'django.contrib.auth.context_processors.auth',
        'django.contrib.messages.context_processors.messages',
    ],
    'libraries':{
        'filter': 'project_name.templatetags.filter',

    }
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-30
    • 2011-01-08
    • 2012-09-18
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2017-10-09
    相关资源
    最近更新 更多