首页 > 解决方案 > context_processors.py:文件路径?

问题描述

我在我的 settings.py 中声明的一个应用程序中有一个 context_processors.py 文件,它可以工作。但是,由于 context_processors.py 文件的数据对所有项目都是通用的,我想在我的项目的根目录中声明它,但文件无法识别......

当前项目的架构

- myproject
  - myproject
  - myapp
    - context_processors.py

在 settings.py 中声明如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR,'registration/templates'),
            os.path.join(BASE_DIR,'templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'myapp.context_processors.data_context_processor',    <********************
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

预期项目的架构

- myproject
  - myproject
    - context_processors.py
  - myapp

我应该如何在 settings.py 中声明我的 context_processors.py 文件?我尝试使用 os.path.join(BASE_DIR,'context_processors.data_context_processor') 但它不起作用......

标签: pythondjango

解决方案


使用 python 模块/包点表示法

'context_processors': [
    'myproject.context_processors.data_context_processor',    
    ...
]

来源:https ://docs.python.org/3/reference/import.html#packages


推荐阅读