Django 表 2:错误 django.template.context_processors.request

Django tables 2: error django.template.context_processors.request

我安装了模块表 2,但遇到下一个问题:

Exception Value: Tag {% querystring %} requires django.template.context_processors.request to be in the template configuration in settings.TEMPLATES[]OPTIONS.context_processors) in order for the included template tags to function correctly.

我的代码是:

Settings.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR + '/llamadas/plantillas')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.core.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.request',
            ],
        },
    },
]

Views.py

def home(request):
    if request.user.is_authenticated():
        llamadas = CallEntry.objects.all()
        return render_to_response('inicio.html', {'llamadas': llamadas})
    else:
        return HttpResponseRedirect('/accounts/login/')

Inicio.html

{% load render_table from django_tables2 %}
<!doctype html>
<html>
    <head>
        <link rel="stylesheet" href="{{ STATIC_URL }}django_tables2/themes/paleblue/css/screen.css" />
    </head>
    <body>
        {% render_table llamadas %}
    </body>
</html>

有什么建议吗?

谢谢!

不再推荐 render_to_response 快捷方式。

改为使用 render 快捷方式,以便使用上下文处理器。

return render(request, 'inicio.html', {'llamadas': llamadas})

您的设置中有 2 个context_processors.request:

'django.core.context_processors.request',

'django.template.context_processors.request',

也许只需要一个...

在我的项目中,我只使用:'django.core.context_processors.request',但是模板中的变量,你的 llamadas,是 TableReport 类型的对象。