Django:没有名为 context_processors 的模块,基本 URL

Posted

技术标签:

【中文标题】Django:没有名为 context_processors 的模块,基本 URL【英文标题】:Django: No module named context_processors, Base URL 【发布时间】:2014-10-15 17:16:28 【问题描述】:

我已经在网上搜索了解决方案,但似乎没有任何效果。我收到错误:

ImproperlyConfigured at /tool/page4/

Error importing module mysite.context_processors: "No module named context_processors"

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
# default context processors for Django 1.4
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.request",
"mysite.context_processors.baseurl",
)

views.py

if(team_value != "---------" && product_value != "---------" && type_team.length > 3 && pattern_value.length > 1)
      
        $.ajax(

              url: BASE_URL'/tool/page4/add_team/',
              type: 'POST',
              dataType: 'html',
              data: 
                  "team" : team_value,
                  "product" : product_value,
                  "pattern" : pattern_value,
                  "type" : type_team,
                  "array" : data_array
              ,
              async: false,

              error: function(XMLHttpRequest, textStatus, errorThrown)  
                  alert("Status: " + textStatus); alert("Error: " + errorThrown); 
               
          );
        location.reload(true);

在我的项目目录中,我有 context_processor.py 和 init.py 文件(两者都不在文件夹中),但是,它似乎找不到这些文件。如果我想避免使用硬编码的 URL,这种方式可行还是有人可以提出其他建议?任何帮助是极大的赞赏!

【问题讨论】:

你用的是什么django版本? django 1.6.5。上面说的是 1.4,因为我刚刚从教程中复制了模板上下文处理器 你的意思是你有context_processors.py而不是context_processor.py__init.py__而不是init.py 我的项目目录中同时拥有(上下文处理器和 __ init __.py)。 【参考方案1】:

外部项目目录通常不在 Python 路径上。你可能只需要context_processors.base_url,没有mysite

【讨论】:

解决了!感谢大家的帮助。【参考方案2】:

在我的设置中:

from django.conf import global_settings

TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
...
'<appname>.context_processors.base_url',
...

)

【讨论】:

以上是关于Django:没有名为 context_processors 的模块,基本 URL的主要内容,如果未能解决你的问题,请参考以下文章

Django内置Admin

Django内置Admin

django基础——上下文处理器

没有名为“django.templates”的模块

错误:'没有名为'django.core.urlresolvers'的模块

ModuleNotFoundError:没有名为“django”的模块