2012-02-24 3 views
3

Django tutorialのこの部分で混乱します。それは、adminテンプレート全体をdbe/templatesにコピーするようなものですが、完全なパスは何であり、どのようなフォルダを作成しているのでしょうか?「Djangoチュートリアル:Todoリストアプリケーション」からのインポートエラー

私はMac OS Xを実行していて、私のtodoアプリケーションは/Users/hobbes3/Sites/mysite/todo/にあり、私の完全なDjangoパスは/usr/local/lib/python2.7/site-packges/django/です。

また、テンプレートを/Users/hobbes3/Sites/myDjango/templatesに配置しました。このフォルダ内には、admin/base_site.htmlpolls/detail.htmlpolls/index.htmlpolls/results.htmlがあります。投票アプリケーションはofficial Django tutorialから作成されました。投票アプリケーションの私のコピーは正常に動作します。あなたはルックスをフォローしているユーザーhttps://docs.djangoproject.com/en/dev/intro/tutorial01/

チュートリアル:

私はpython manage.py runserverでサーバを実行して、私はhttp://127.0.0.1:8000/admin/に行くとき、私は取得エラーは公式チュートリアルに従うべきで、手始めに

ImportError at /admin/ 

No module named dbe.todo.models 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/admin/ 
Django Version:  1.3.1 
Exception Type:  ImportError 
Exception Value:  

No module named dbe.todo.models 

Exception Location:  /Users/hobbes3/Sites/mysite/todo/admin.py in <module>, line 1 
Python Executable: /usr/local/bin/python 
Python Version:  2.7.2 
Python Path:  

['/Users/hobbes3/Sites/mysite', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg', 
'/usr/local/Cellar/python/2.7.2/lib/python27.zip', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-darwin', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-mac', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-mac/lib-scriptpackages', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/lib-tk', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/lib-old', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/lib-dynload', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages', 
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info'] 

Server time: Fri, 24 Feb 2012 05:09:28 -0600 
+0

"adminテンプレート全体をdbe/templatesにコピーするようなことを言っています。すべてのコード、エラーを再現する手順、完全なトレースバックを投稿してください。 TYIA :) – jpic

+0

お返事ありがとうございます!申し訳ありませんが、私は "投稿質問"を押す前にエラーを投稿するのを忘れました。正確な指示は、私が上に投稿した最初のリンクにあります。 – hobbes3

+1

'dbe'とは何ですか? – jpic

答えて

5

ですかなりひどい(ごめんなさい:/)

私はdbeがこの男のプロジェクト名だと思う。彼が示すとき:

cp -r django/contrib/admin/templates/admin/ dbe/templates/ 

彼はdjangoと同じレベルでプロジェクトを持っているようです。だから彼のdbe ==あなたのmysite。

いずれにせよ、プロジェクトモジュール名の前にアプリケーションモジュールのプレフィックスを付ける必要はありません。これはばかばかしいことです。アプリケーションのプロジェクト名をハードコーディングしています。これは、再利用可能なアプリの目的を完全に破ります。これを実行します:

find /path/to/your/project -type f | xargs sed -i -e s/dbe.//g 

このコマンドは 'dbe'を削除します。あなたのコードのどこからでも。このチュートリアルのコードはとても恐ろしいものです。なぜなら、あなたがそれに従うのを悩ます理由が不思議です...

+0

申し訳ありませんが、動作しませんでした。 [ソースコード](http://lightbird.net/dbe/todosrc.tar.gz)をダウンロードしてコンピュータで起動してみてください。ああ、私は公式のPollアプリのチュートリアルをすでに完了しました:-)。 – hobbes3

+0

アスタリスクは私の答えにはありませんでした。私はそれをテストし、それが正しいです。 – jpic

+0

さて、私は 'dbe.todo.models import *'から 'todo 'に変更しました。'mysite/todo/admin.py'と' mysite/todo/view.py'の両方でモデルimport * 'を実行します。それから、テンプレートを 'mysite/templates'に移動し、' mysite/settings.py'を適切に更新しました。しかし、私は**まだ** dbeについてのエラーを取得しています。エラーが表示されます: 'TemplateSyntaxError at/admin/ レンダリング中にViewDoesNotExistがキャッチされました:dbe.todo.viewsをインポートできませんでした。エラーは:dbe.todo.views'という名前のモジュールがありません。 '例外の場所:\t /usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/urlresolvers.py _get_callbackの167行目' – hobbes3

関連する問題