7

私の管理テーマに django-grappelli を使用しようとしましたが、インストールは驚くほど困難でした。私のurls.pyで次のように実行されます:

NameError .. name 'grappelli' is not defined

エラーは行にスローされます

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

grappelli を pip でインストールしました。grappelli は、sites-packages ディレクトリにあります。に追加し、INSTALLED_APPSsyncdb を実行し、pythonpath に grappelli を追加しようとしましたが、うまくいきませんでした。grappelli を urls.py にインポートすると、エラーがAttributeError - 'module' has no attribute 'urls'

提案やあらゆる種類のヘルプは大歓迎です。

4

4 に答える 4

21

行は次のようになります。

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

includeURLモジュールへのパスを取るか、URLパターンを返すPythonオブジェクトにすることができます http://docs.djangoproject.com/en/dev/topics/http/urls/#include

したがって、2 つのオプションは、上記の行 (URL へのパス) または

from grappelli.urls import urlpatterns as grappelli_urls

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

エラーに関しては、Python で最も簡単にデバッグできるエラーの 1 つです: grappelliis not defined, as in.. it has not been defined.

シェルの中にいると想像してください:

>>> print grappelli
exception: variable undefined
>>> grappelli = 'hello' # we just defined grappelli
>>> print grappelli
'hello'
于 2011-02-12T20:07:33.577 に答える
11

これは 1 年以上前のものですが、同じ問題を抱えていたときの Google での上位の結果の 1 つでした。

Grapelli.urls から urlpatterns をインポートする代わりに、include() ステートメントを変更することもできます。

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

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

インクルード ステートメントで 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 に答える