【问题标题】:Overriding Account/context_processors.py (Pinax/Django)覆盖 Account/context_processors.py (Pinax/Django)
【发布时间】:2012-05-30 00:10:58
【问题描述】:

我正在尝试覆盖 Pinax 项目的默认 Account/context_processors.py。

但是每次尝试都找不到文件,继续使用默认的。

默认项目中文件的路径为:pinax/apps/account/context_processors.py

我尝试将自定义版本的 context_processors.py 放在我项目的以下位置:

  1. myapp/apps/account/context_processors.py
  2. myapp/account/context_processors.py
  3. myapp/pinax/context_processors.py

我认为第一个是要走的路。

我做错了什么?

【问题讨论】:

    标签: python django pinax


    【解决方案1】:

    Django 依赖TEMPLATE_CONTEXT_PROCESSORS 来定位和导入上下文处理器。这与模板搜索的行为有点不同。
    因此,在设置文件中覆盖 TEMPLATE_CONTEXT_PROCESSORS 以将 "pinax.apps.account.context_processors.account" 更改为您的导入路径。

    【讨论】:

    • 谢谢好的!所以我实际上也尝试过更改它,但不断收到以下错误:导入请求处理器模块apps.account.context_processors时出错:“没有名为account.context_processors的模块”。我没有使用正确的导入路径吗?
    • @user1328021 与INSTALLED_APPS 中的应用保持一致。另外,使用apps.account.context_processors.your_function_name 而不是apps.account.context_processors
    • 好的!完美的。所以在INSTALLED_APPS 中它仍然指向pinax.apps.accounts。我将其更改为 accounts,因为我在修改它时将整个目录保存到我的本地项目中,现在它可以正常工作了。
    猜你喜欢
    • 2019-03-19
    • 1970-01-01
    • 2014-03-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多