Python Django教程:不完整的格式错误
我对Django教程有问题。。。我从我的一个模板中得到了一个Python Django教程:不完整的格式错误,python,django,Python,Django,我对Django教程有问题。。。我从我的一个模板中得到了一个不完整的格式错误,但我没有发现任何具体错误 Environment: Request Method: GET Request URL: http://localhost:8000/polls/1/ Django Version: 1.9.5 Python Version: 3.5.1 Installed Applications: ['polls.apps.PollsConfig', 'django.contrib.admin'
不完整的格式
错误,但我没有发现任何具体错误
Environment:
Request Method: GET
Request URL: http://localhost:8000/polls/1/
Django Version: 1.9.5
Python Version: 3.5.1
Installed Applications:
['polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template C:\Users\Monte Milanuk\Desktop\mysite2\templates\polls\detail.html, error at line 7
incomplete format 1 : <h1>{{ question.question_text }}</h1>
2 :
3 : {% if error_message %}
4 : <p><strong>{{ error_message }}</strong></p>
5 : {% endif %}
6 :
7 : <form action=" {% url 'polls:vote' question.id %} " method="post">
8 : {% csrf_token %}
9 : {% for choice in question.choice_set.all %}
10 : <input type="radio" name="choice" id="choice{{ forloop.counter }}"
11 : value="{{ choice.id }}" />
12 : <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br/>
13 : {% endfor %}
14 :
15 : <input type="submit" value="Vote" />
16 : </form>
17 :
Traceback:
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\core\handlers\base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\core\handlers\base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Monte Milanuk\Desktop\mysite2\polls\views.py" in detail
17. return render(request, 'polls/detail.html', {'question': question})
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\shortcuts.py" in render
67. template_name, context, request=request, using=using)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\template\loader.py" in render_to_string
97. return template.render(context, request)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\template\backends\django.py" in render
95. return self.template.render(context)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\template\base.py" in render
206. return self._render(context)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\template\base.py" in _render
197. return self.nodelist.render(context)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\template\base.py" in render
992. bit = node.render_annotated(context)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\template\base.py" in render_annotated
959. return self.render(context)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\template\defaulttags.py" in render
499. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\core\urlresolvers.py" in reverse
600. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "C:\Users\Monte Milanuk\Anaconda3\envs\django\lib\site-packages\django\core\urlresolvers.py" in _reverse_with_prefix
488. if re.search('^%s%s' % (re.escape(_prefix), pattern), candidate_pat % candidate_subs, re.UNICODE):
Exception Type: ValueError at /polls/1/
Exception Value: incomplete format
views.py
from django.conf.urls import url
from . import views
app_name = 'polls'
urlpatterns = [
# ex: /polls/
url(r'^$', views.index, name='index'),
# ex: /polls/5
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
# ex: /polls/5/results/
url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
# ex: /polls/5/vote/
url(r'^(?P<question_id>[0-9]+)/vote/%$', views.vote, name='vote'),
]
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponse, HttpResponseRedirect
from django.core.urlresolvers import reverse
from .models import Choice, Question
# Create your views here.
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
context = {'latest_question_list': latest_question_list}
return render(request, 'polls/index.html', context)
def detail(request, question_id):
question = get_object_or_404(Question, pk=question_id)
return render(request, 'polls/detail.html', {'question': question})
def results(request, question_id):
question = get_object_or_404(Question, pk=question_id)
return render(request, 'polls/results.html', {'question': question})
def vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
try:
selected_choice = question.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
# Redisplay the question voting form.
return render(request, 'polls/detail.html',
{'question': question,
'error_message': "You didn't select a choice.",
})
else:
selected_choice.votes += 1
selected_choice.save()
# Always return an HttpResponseRedirect after successfully dealing with
# POST data. This prevent data from being posted twice if a user hits
# the Back button.
return HttpResponseRedirect(
reverse('polls:results', args=(question.id,)))
我的代码中是否还有其他地方应该查找此错误的来源?此url模式中的
%
导致此错误。移除它
url(r'^(?P<question_id>[0-9]+)/vote/%$', views.vote, name='vote'),
url(r'^(?P[0-9]+)/vote/%$,views.vote,name='vote'),
此url模式中的%
导致错误。移除它
url(r'^(?P<question_id>[0-9]+)/vote/%$', views.vote, name='vote'),
url(r'^(?P[0-9]+)/vote/%$,views.vote,name='vote'),
请显示您的url模式。您应该创建一个新的url模式。@Sayse真的。Django项目涉及的文件数量如此之多,你认为这是如何工作的?看看Django标签中的大多数其他问题,它们似乎都能让你找到一个。请显示你的url模式。你应该创建一个。@Sayse真的。随着Django项目涉及的文件数量的增加,您认为它是如何工作的?看看Django标签中的大多数其他问题,它们似乎都能成功地完成一个任务!如果您不介意我问一下,URL模式中用于“投票”的%
如何影响“详细信息”的视图?为什么会出现如此模糊的错误消息?我同意这是一个很难调试的错误消息,因为错误页面显示了模板,但问题在于url.py
。由于问题在于{%url%}
标记,并且回溯提到反向
,因此查看url是个好主意。在Python中,%
符号用于字符串格式,例如“我的名字是%s”%name
。百分号本身会导致格式不完整错误
。谢谢!如果您不介意我问一下,URL模式中用于“投票”的%
如何影响“详细信息”的视图?为什么会出现如此模糊的错误消息?我同意这是一个很难调试的错误消息,因为错误页面显示了模板,但问题在于url.py
。由于问题在于{%url%}
标记,并且回溯提到反向
,因此查看url是个好主意。在Python中,%
符号用于字符串格式,例如“我的名字是%s”%name
。百分号本身会导致格式不完整错误
。