1

私は Django チュートリアル (https://docs.djangoproject.com/en/dev/intro/tutorial03/) を完了しようとしていますが、正規表現と include( ) 関数。

私の問題のある urls.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin

admin.autodiscover()

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

これにより、(を参照するとhttp://localhost:8000/admin/) polls.urls の詳細ビューが表示されます。そのコードは次のとおりです。

from django.conf.urls import patterns, url

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

polls に一致し、polls.urls に取り込まれる理由がわかりました。何か案は?

注:行をコメントアウトするとurl(r'^polls/, include('polls.urls')),、管理ページが再び表示されます

ありがとう!

4

1 に答える 1

1

OK - なんとかこれを修正できましたが、その方法は完全にはわかりません。それを残して他の問題に取り組んでいたケースで、戻ってきたときに修正されました! だから、私が変更したこと:

1.){% load url from future %}テンプレートの上位互換性を確保するために含まれています

2.) detail.html のフォーム アクションを<form action="/polls/{{ poll.id }}/vote/" method="post">(から) に変更しました<form action="{% url 'polls.views.vote' poll.id %}" method="post">

3.) 最後に、そしておそらく最も重要なのは、私の構文を整理したことです! 私のviews.pyファイルにはReturn HttpResponseRedirect(reverse('polls_results', args=(p.id,)))ありましたが、ありませんでしたReturn HttpResponseRedirect(reverse('poll_results', args=(p.id,)))

どちらがやったかはまだわかりませんが、誰かが私と同じ立場にいるなら、これら3つの組み合わせがそれを行うでしょう!

于 2012-09-16T13:33:05.823 に答える