vote-function"没有Eintrag匹配给定的查询"

时间:2016-06-12 16:02:38

标签: javascript jquery python ajax django

我想实现投票功能。投票功能无法获得该对象。 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'),

1 个答案:

答案 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({
    ...