0

サイトを Django 1.3.1 から Django 1.4 にアップグレードしました。「ユーザー」というアプリがあります。プロジェクトの URL ルーティング ルールは次のとおりです。

url(r'', include('users.urls', namespace='users', app_name='users')),

および特定のユーザー プロファイル ルーティング ルール:

url(r'^profile/(?P<pk>\d+)/$', ProfileDetailView.as_view(),
    name='profile'),

ユーザー アプリには空のinit .py ファイルがあります。それにもかかわらず、次のテンプレート エラーが表示されます。

Error during template rendering

In template /home/daniel/python_practice/rainbow/django_templates/user_bar.html, error at line 3
No module named users

次のテンプレート コードを使用すると:

<a href="{%url users:profile user.id %}">{{ user.username }}</a>

私はこの問題に数時間立ち往生しています。プロジェクトの名前は「虹」です。URL 呼び出しパラメーターを に変更するなどのことを試みましたurl rainbow.users:profile ...。そうすると、「虹」は名前空間ではないことがわかります。あたかもusers名前空間を認識しているかのようですが、何らかのモジュールを探して失敗しています。

誰かがこれについて何か洞察を持っていますか?


編集:

ディレクトリ構造は次のとおりです。

rainbow
--> rainbow - directory that contains global settings and urls
--> users - the relevant app
    --> __init__.py
    --> ...etc.
--> other apps
--> django_templates (eg. the relevant template would be django_templates/user_bar.html)

ありがとう、

パラゴンRG

4

2 に答える 2

1

よくあることですが、回答を検索する際の問題は、検索とテストの範囲を大幅に制限することでした。実際には、存在しないモジュールが指定された2つのURL構成行がありました。プラスの効果がないように、一度に1つずつ変更するだけでした。

行は次のとおりです。

url(r'^join/$', 'rainbow.users.views.register', name='join'),
url(r'^profile/$', 'rainbow.users.views.self_profile',
    name='user_profile_current'),

rainbow.これらの各ビューからを削除すると、問題が修正されました。

于 2012-05-16T14:02:43.317 に答える
0

単なる提案ですが、Django を 1.4 にアップグレードしたときに、プロジェクトの manage.py をアップグレードしましたか? django 1.4 の manage.py のアップグレード 彼らは、あなたが現在抱えているかもしれないパスの問題について話します。okm が尋ねたように、シェルを起動してユーザーをインポートできない場合は、ルートに問題があります。

于 2012-05-15T15:58:46.947 に答える