我想实现投票功能。投票功能无法获得该对象。 vote.js应该没问题。任何的想法?似乎POST请求没有发送。谢谢。
这是错误:
r.animate( {transform: 't 100 0r90,100,200'}, 1000, mina.easein );
result.html中的摘录:
Page not found (404)
Request Method: GET
Request URL: http://.../vote/
Raised by: book.views.vote
No Eintrag matches the given query.
models.py:
<a href="/vote/" id="eintrag-vote-{{ eintrag.id }}" class="vote">▲</a>
<p id="eintrag-title-{{ eintrag.id }}">{{ eintrag.title }}</p>
views.py:
class Eintrag(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
title = models.CharField(max_length=200)
points = models.IntegerField(default=1)
text = models.TextField()
urls.py:
@login_required
def vote(request):
eintrag = get_object_or_404(Eintrag, id=request.POST.get('eintrag'))
eintrag.points += 1
eintrag.save()
return HttpResponse()
和vote.js:
url(r'^vote/$', views.vote, name='vote'),
答案 0 :(得分:0)
您的请求方法似乎不匹配。当你应该进行POST时,你正在进行GET。
此行引发404,因为没有request.POST
:
eintrag = get_object_or_404(Eintrag, id=request.POST.get('eintrag'))
我邀请您使用django.views.decorators.http.require_POST
修饰此视图,以便获得比{404}更能反映方法问题的HTTP 405 Method not allowed error
我认为它来自于你的Ajax请求是如何在JS中完成的(参见http://api.jquery.com/jquery.ajax/)
您可以尝试更改以下内容吗?
function vote(eintragID) {
$.ajax({
...