0

このチュートリアルhttps://docs.djangoproject.com/en/dev/intro/tutorial04/を使用して最初の django アプリを作成しています。最終的なタスクまで完了しましたが、不明なエラーが発生しました修正方法.プログラム全体をお見せし、この投票を行う際に間違っていたと思われる場所を特定しようとします.このアプリは投票のようなものです. 投票といくつかの選択肢が表示され、投票する必要があります。

これは私のエラーです

TemplateSyntaxError at /polls/1/
Caught NoReverseMatch while rendering: u'myapp' is not a registered namespaceRequest Method: GET 
Request URL: http://cat.pythonanywhere.com/polls/1/ 
Django Version: 1.3.5 
Exception Type: TemplateSyntaxError 
Exception Value: Caught NoReverseMatch while rendering: u'myapp' is not a registered namespace 
Exception Location: /usr/local/lib/python2.7/site-packages/django/template/defaulttags.py in render, line 450 
Python Executable: /usr/local/bin/uwsgi 

Template error
In template /home/cat/mysite/myapp/templates/myapp/detail.html, error at line 5

Caught NoReverseMatch while rendering: u'myapp' is not a registered namespace
1 <h1>{{ poll.question }}</h1>

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

4  
5 <form action="{% url myapp:vote poll.id %}" method="post">

6 {% csrf_token %}

7 {% for choice in poll.choice_set.all %}

8     <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />

9     <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />

10 {% endfor %}

11 <input type="submit" value="Vote" />

12 </form> 

エラーが私のdetail.htmlに隠れていると思います

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

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

<form action="{% url myapp: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 }}" />
    <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>

私の Urls.py

from django.conf.urls.defaults import *
from mysite.myapp import views

urlpatterns = patterns('',

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

このエラーを修正する方法がわからないので、誰かが私を助けてくれることを願っています

4

3 に答える 3

2

In your main url where your admin url save, your main urlconf poll must be like this to registered that namespace:

main urls.py

 url (r'^poll/', include('poll.urls', namespace='poll')),

then in the child urls.py

urlpatterns = patterns('poll.views',
    url(r'^$', index, name='index'),
    url(r'^(?P<poll_id>\d+)/$', 'detail', name='detail'),
    url(r'^(?P<poll_id>\d+)/results/$', 'results', name='results'),
    url(r'^(?P<poll_id>\d+)/vote/$', 'vote', name='vote'),
)
于 2013-02-14T04:53:59.493 に答える
0

メインの urls.py に含まれている場合

url (r'^poll/', include('poll.urls'))

次に変更します

url (r'^poll/', include('poll.urls', namespace='poll'))

これは私にとってはうまくいきました。

于 2014-09-08T18:05:04.813 に答える
0

テンプレートで に変更{% url myapp:vote poll.id %}してみてください{% url vote poll.id %}

于 2013-02-14T04:50:33.623 に答える