首页 > 解决方案 > 模块“django.template.context_processors”未定义“custom_proc”属性/类

问题描述

def custom_proc(request):
"A context processor that provides 'app', 'user' and 'ip_address'."
return {
    'app': 'My app',
    'user': request.user,
    'ip_address': request.META['REMOTE_ADDR']
}

上面的代码是我的代码。请求上下文。我将此代码写在文件 context_processors.py 中。并且后面的代码在 settings.py 文件中: 'context_processors': [ 'django.template.context_processors.custom_proc', 如何在 view.py 文件中使用上下文处理器?

        return render(request,'template1.html',
        {'message': 'I am view 1.'})```
    enter code here

标签: pythondjangorequestcontext

解决方案


上下文处理器的路径'django.template.context_processors.custom_proc'不正确。

如果您context_processors.py在名为 的应用程序目录中创建了该文件my_app,那么您settings.py应该具有以下内容:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        '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',
                'my_app.context_processors.custom_proc',
            ],
        },
    },
]

推荐阅读