0

最近、Django の学習を開始しましたが、早い段階で問題に遭遇しました。このチュートリアルのパート 4 で、コードを汎用ビューに変更した後、詳細サイトが以前とは異なるページのように見えます。

ポイントが見つからず、エラーステートメントが表示されませんでした。

以下にコードを掲載しました。

polls/urls.py:

from polls.models import Poll

urlpatterns =patterns('',
    url(r'$',
        ListView.as_view(
            queryset=Poll.objects.order_by('-pub_date')[:5],
            context_object_name='latest_poll_list',
            template_name='polls/index.html'),
        name='index'),
    url(r'^(?P<pk>\d+)/$',
        DetailView.as_view(
            model=Poll,
            template_name='polls/detail.html'),
        name='detail'),
    url(r'^(?P<pk>\d+)/results/$',
        DetailView.as_view(
            model=Poll,
            template_name='polls/results.html'),
        name='results'),
    url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote', name='vote'),
    )

index.html

{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li><a  href = "{% url 'polls:detail' poll.id %}">{{poll.question}}</a></li>
    {% endfor %}
{% else %}
        <p> No polls are available.</p>
{% endif %}

詳細.html

<h1>{{poll.question}}</h1>

{%if error_message %}<p><strong>{{error_message}}</strong></p>{%endif%}

<form action = '{% url 'polls:vote' poll.id %}' method = 'post'>
    {% csrf_token %}
    {% for choice in poll.choice_set.all %}
    <input type = 'radio' name = 'choice' id = 'choice{{forloop.counter}}' value = '{{choice.id}}'/>
    <lable for = 'choice{{forloop.counter}}'>{{choice.choice_text}}</lable><br/>
    {%endfor%}
<input type ='submit' value = 'Vote'/>
</form>
4

1 に答える 1

1

polls/urls.py

最初の URL の正規表現の一致はr'^$'.

urlpatterns =patterns('',
    url(r'^$',
        ListView.as_view(....
于 2013-04-09T08:05:45.593 に答える