尝试使用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'
建议或任何形式的帮助都非常感谢。
答案 0 :(得分:19)
行应为:
(r'^grappelli/', include('grappelli.urls'))
include
要么获取urls模块的路径,要么它可以是返回url模式的python对象
http://docs.djangoproject.com/en/dev/topics/http/urls/#include
所以你的两个选项是上面的行(urls的路径)或
from grappelli.urls import urlpatterns as grappelli_urls
(r'^grappelli/', include(grappelli_urls)),
至于错误,它是Python中最直接的错误调试之一:grappelli
未定义,例如..它尚未定义。
想象一下在shell中:
>>> print grappelli
exception: variable undefined
>>> grappelli = 'hello' # we just defined grappelli
>>> print grappelli
'hello'
答案 1 :(得分:11)
我意识到这已经超过一年了,但当我遇到同样的问题时,这是谷歌的最佳成果之一。
您可以更改include()语句
而不是从grapelli.urls导入urlpatterns。(r'^grappelli/', include(grappelli.urls))
到
(r'^grappelli/', include('grappelli.urls'))
这引起了我的注意,直到我注意到需要在include语句中引用package.urls。
答案 2 :(得分:1)
您可能希望在 urls.py :
中导入以下内容from django.conf.urls import include
答案 3 :(得分:1)
在宣布您的路线时,您忘记引用一个表达式。
将grappelli.urls
替换为'grappelli.urls'
以使其正常工作!
正确的语法是:
(r'^grappelli/', include('grappelli.urls'))