質問

DjangoのWebサイトでチュートリアルをフォローしていますが、拡張しようとしています。すべてのアプリを「アプリ」フォルダーに配置する組織スキームが気に入っています。すべてをリンクさせるために、urls.pyを含める適切な方法を見つけようとしています。

これが私のルートurls.pyです:

from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

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

これが私のurls.pyでapps/polls/urls.pyでです:

from django.conf.urls.defaults import *

urlpatterns=patterns('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'),
)

これを行う正しい方法は何ですか?ありがとう!

役に立ちましたか?

解決

あなたが現在設定している方法...世論調査のURLは次のとおりです。

http://your.url.here/polls/polls/235/results/

これはおそらくあなたが望むものではありません。 include の関数 urlpatterns ルートurls.pyファイルが指定します "polls/" すべてのプレフィックスとして urlpatterns Pollsアプリで。したがって、世論調査/urls.pyファイルでは、 "polls/" プレフィックスは再びプレフィックスを引き起こします。

他のヒント

Djangoインスタンスをどのように実行していますか? Apacheで複数のVHOSTを構成している場合、 /APPSの各Djangoインスタンスには独自のurls.pyがあります。

私はこれを行うことによってそれを機能させました:

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

投票の部分はルートurlconfで世話をしていると思います

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top