- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我从教程的通用 View 部分开始,直到那时一切都很顺利,工作完美,然后我得到这个错误:反向“投票”,参数为“(”),未找到关键字参数“{}”。尝试了 1 种模式:[u'polls/(?P[0-9]+)/vote/$']
这是我的 urls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>[0-9]+)/results/$', views.ResultsView.as_view(), name='results'),
url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name ='vote'),
]
这是我的views.py:
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext, loader
from django.http import Http404
from .models import Choice, Quesion
from django.core.urlresolvers import reverse
from django.views import generic
# Create your views here.
class IndexView(generic.ListView):
template_name = 'polls/index.html'
context_object_name = 'latest_question_list'
def get_queryset(self):
return Quesion.objects.order_by('-pub_date')[:5]
class DetailView(generic.DetailView):
model = Quesion
template_name = 'polls/detail.html'
class ResultsView(generic.DetailView):
model = Quesion
template_name = 'polls/results.html'
def vote(request, question_id):
p = get_object_or_404(Quesion, pk=question_id)
try:
selected_choice = p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
return render(request, 'polls/detail.html', {
'question': p,
'error_message':"No choice selected",
})
else:
selected_choice.votes += 1
selected_choice.save()
return HttpResponseRedirect(reverse('polls:results',args=(p.id,)))
这是我的 detail.html
<h1>{{ question.question_text }}</h1>
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
<form action="{% url 'polls:vote' question.id %}" method="post">
{% csrf_token %}
{% for choice in question.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice_txt }} </label><br />
{% endfor %}
<input type="submit" value="vote" />
</form>
最佳答案
你有两个问题。第一个是 DetailView
在模板中没有提供 question
变量,而是提供了一个名为 object
的变量。所以模板中的所有question
实例都需要改为object
。
其次,URL 需要关键字参数 question_id
,但您将非关键字参数传递给 {% url %}
标记。您需要将其更改为 question_id=object.id
。您的 detail.html
应该如下所示:
<h1>{{ object.question_text }}</h1>
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
<form action="{% url 'polls:vote' question_id=object.id %}" method="post">
{% csrf_token %}
{% for choice in object.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice_txt }} </label><br />
{% endfor %}
<input type="submit" value="vote" />
</form>
关于python - NoReverseMatch Django 教程 1.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29558154/
我正在尝试添加我单独制作的用户应用程序,然后尝试将其添加到我的博客中。但问题是每次我尝试添加这个东西都会搞砸,就像我现在遇到的这个错误一样。 raise NoReverseMatch(msg) dja
我有以下设置: /landing_pages views.py urls.py 在urls.py中,当我尝试访问/competition时,我有以下内容: from django.conf.u
我在浏览器中遇到此异常,我已经看到多达 20 篇与此错误相关的帖子,但我找不到任何解决方案。我是 Django 的新手,请帮助我,在此先感谢。 我的项目名/urls.py urlpatterns =
我有这个问题,被困了几个小时。 NoReverseMatch位于/ 找不到参数“('',)”的“hotovo”。尝试了1个模式:['hotovo/(?P [^/] +)$']。 网址: urlpatt
所以我做了很多博客教程中的一个,现在我正在开发自己的应用程序。我遇到了这个错误: Reverse for '' with arguments '()' and keyword arguments '{
使用 Django 1.10.4。我有一个模型 Stream,我为其创建了 CreateView。当通过管理面板创建对象时,一切正常,但是当我使用 CreateView 表单时,创建了一个对象(在管理
为什么我会得到 Reverse for 'explorer_js' not found. 'explorer_js' is not a valid view function or pattern n
我正在构建一个函数,以在用户单击链接时增加模型,但即使我传递了所有参数,我仍然无法解决此问题。 Reverse for 'karma' with keyword arguments '{'token'
我正在尝试向 View 发送 AJAX 发布请求,但由于某种原因我收到了 Http500 错误。 这是 AJAX 函数: function update_coins() { $.ajax({
我不明白这是怎么回事?我试图制作一个项目的详细信息页面,例如 http://tutorial.djangogirls.org/en/extend_your_application/index.html
我正在 django 1.6(和 python 2.7)中制作一个简单的登录应用程序,但我在开始时遇到错误,无法继续。 这是网站的 url.py from django.conf.urls impor
调试了一段时间后,我发现了错误是什么,但我不知道如何修复它。 我有一个名为“ver_caja”的 urlConf ' 谁接收一个 caja 对象的 id 作为参数,然后调用泛型 object_deta
刚开始使用 Django,但遇到了一些困难——我决定尝试编写一个简单的博客引擎,同时引用 django-basic-apps 库。 在 blog/urls.py 中,我有这个条目按日期映射到实际的帖子
我正在开发一个简单的应用程序,宠物用户可以在其中创建关于他们宠物的板并在板上显示图片。 我正在尝试创建一个功能,用户可以点击他们的图板,将他们重定向到他们的图板,该图板将显示他们所有的宠物图片。 当我
我在 View 中有两种方法 create 和 update ,其中 update 接受一个参数,而 create 不接受任何参数。我决定将它们变成只有一个函数 update_create 因为它们没
我遇到了这个错误,但似乎无法弄清楚。我直接从以前的 Django 项目复制它,因此造成了部分困惑。 TemplateSyntaxError at Caught NoReverseMatch while
我在让 password_Reset_confirm 位工作时遇到问题。 网址: (r'^password_reset/$', 'django.contrib.auth.views.password_
目前 Django URL 标记出现 NoReverseMatch 错误。一直在关注 Django 权威指南、Django 文档,并在此处和互联网上进行搜索 网址: url(r'^test/', Se
我又花了一个晚上在这上面...有人可以帮忙吗? 我正在尝试在 http://lightbird.net/dbe/todo_list.html 复制 kickstart 示例这似乎是为早期版本的 Dja
我在尝试使用 url 标记链接到 View 时遇到了这个错误。错误发生在这一行: {% for algorithim in algorithims %} 在模板中。 不太确定我哪里出错了。我想我已经附
我是一名优秀的程序员,十分优秀!