未定义Django NameError[app name]

2024-05-13 22:15:38 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试使用django grappelli作为我的管理主题,安装是一个令人惊讶的挑战。在myurl.py中遇到以下内容:

NameError .. name 'grappelli' is not defined

这个错误是在线路上引发的

(r'^grappelli/', include(grappelli.urls))

用pip安装了grappelli,grappelli位于my sites packages目录中。添加到我的INSTALLED_APPS,运行syncdb,尝试将grappelli添加到我的pythonpath,但没有成功。如果我在urls.py中导入grappelli,则错误将更改为AttributeError - 'module' has no attribute 'urls'

我们非常感谢您的建议或任何帮助。


Tags: pipdjangonamepy主题includeis错误
3条回答

我知道这已经有一年多的历史了,但当我遇到同样的问题时,这是Google上最好的结果之一。

您还可以更改include()语句,而不是从grapelli.url导入urlpatterns

(r'^grappelli/', include(grappelli.urls))

(r'^grappelli/', include('grappelli.urls'))

在我注意到需要在include语句中引用package.url之前,这也让我有点不快。

行应为:

(r'^grappelli/', include('grappelli.urls'))

include要么获取url模块的路径,要么是返回url模式的python对象 http://docs.djangoproject.com/en/dev/topics/http/urls/#include

所以您的两个选项是上面的行(url的路径)或者

from grappelli.urls import urlpatterns as grappelli_urls

(r'^grappelli/', include(grappelli_urls)),

至于这个错误,它是Python中要调试的最直接的错误之一:grappelli未定义,如。。还没有定义。

想象一下在壳里:

>>> print grappelli
exception: variable undefined
>>> grappelli = 'hello' # we just defined grappelli
>>> print grappelli
'hello'

您可能希望在urls.py中导入以下内容:

from django.conf.urls import include

相关问题 更多 >