1. ホーム
  2. python

[解決済み] urls という名前のモジュールがない

2022-02-12 20:03:17

質問

Django チュートリアルのパート3の最後、Decoupling the URLconfs のところです。 http://docs.djangoproject.com/en/1.1/intro/tutorial03/#intro-tutorial03 というエラーメッセージが表示され、quot;No module named urls"というエラーメッセージが表示されます。

変更すると

from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('mysite.polls.views',
    (r'^polls/$', 'index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'),
    (r'^admin/', include(admin.site.urls)),
)

になります。

from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
    (r'^admin/', include(admin.site.urls)),
)

を変更しました。 include('mysite.polls.urls')),include(mysite.polls.urls)), が、やはりうまくいきませんでした。

この問題を解決するにはどうしたらよいでしょうか?

UPDATE 2: mysite/polls/urls.pyにあります。

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.polls.views',
    (r'^$', 'index'),
    (r'^(?P<poll_id>\d+)/$', 'detail'),
    (r'^(?P<poll_id>\d+)/results/$', 'results'),
    (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

UPDATE 4: プロジェクト全体は以下のサイトにあります。

http://www.mediafire.com/?t1jvomjgjz1

解決方法は?

あなたのプロジェクトファイルを使って、私のマシンでインポートエラーが再現できません (Windows 7, Django 1.1.1, Python 2.6.4)。すべてうまくインポートできましたが、(チュートリアルが示すように) URL が正しく指定されていませんでした。コードを修正します。

/mysite/urls.py:

from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
    (r'^admin/', include(admin.site.urls)),
)

/mysite/polls/urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.polls.views',
    (r'^$', 'index'),
    (r'^(?P<poll_id>\d+)/$', 'detail'),
    (r'^(?P<poll_id>\d+)/results/$', 'results'),
    (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

訪問先 http://127.0.0.1:8000/polls/ - テンプレートファイルがないため、TemplateDoesNotExist例外を受け取りました。

私の答えは、再起動してもう一度やってみることかもしれませんね;)