7

尝试使用 django-grappelli 作为我的管理主题,安装非常具有挑战性。在我的 urls.py 中遇到以下内容:

NameError .. name 'grappelli' is not defined

在线抛出错误

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

用 pip 安装了 grappelli,并且 grappelli 在我的 sites-packages 目录中。添加到我的INSTALLED_APPS,运行 syncdb,尝试将 grappelli 添加到我的 pythonpath,但没有运气。如果我在 urls.py 中导入 grappelli,错误将变为AttributeError - 'module' has no attribute 'urls'

非常感谢您的建议或任何形式的帮助。

4

4 回答 4

21

行应为:

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

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

因此,您的两个选项是上面的行(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'
于 2011-02-12T20:07:33.577 回答
11

我意识到这已经有一年多了,但当我遇到同样的问题时,它是谷歌上最好的结果之一。

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

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

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

这也让我有点失望,直到我注意到需要在 include 语句中引用 package.urls。

于 2012-05-11T20:04:27.673 回答
2

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

from django.conf.urls import include
于 2016-01-13T11:28:58.963 回答
2

声明路线时,您忘记引用表达式。

替换grappelli.urls'grappelli.urls'使其工作!

正确的语法是:

(r'^grappelli/', include('grappelli.urls'))
于 2016-01-27T01:12:52.827 回答