Javascript 投票功能“;没有与给定查询匹配的Eintrag“;

Javascript 投票功能“;没有与给定查询匹配的Eintrag“;,javascript,jquery,python,ajax,django,Javascript,Jquery,Python,Ajax,Django,我想实现投票功能。投票函数无法获取对象。vote.js应该没问题。有什么想法吗?似乎POST请求未发送。谢谢。 这就是错误: Page not found (404) Request Method: GET Request URL: http://.../vote/ Raised by: book.views.vote No Eintrag matches the given query. result.html中的代码段: <a href="/vote/" id="eintra

我想实现投票功能。投票函数无法获取对象。vote.js应该没问题。有什么想法吗?似乎POST请求未发送。谢谢。

这就是错误:

Page not found (404)
Request Method: GET
Request URL:    http://.../vote/
Raised by:  book.views.vote
No Eintrag matches the given query.
result.html中的代码段:

<a href="/vote/" id="eintrag-vote-{{ eintrag.id }}" class="vote">▲</a>
<p id="eintrag-title-{{ eintrag.id }}">{{ eintrag.title }}</p>
views.py:

@login_required
def vote(request):
    eintrag = get_object_or_404(Eintrag, id=request.POST.get('eintrag'))
    eintrag.points += 1
    eintrag.save()
    return HttpResponse()
URL.py:

url(r'^vote/$', views.vote, name='vote'),
和vote.js:

$(文档).ready(函数(){
//使用jQuery
函数getCookie(名称){
var-cookieValue=null;
if(document.cookie&&document.cookie!=''){
var cookies=document.cookie.split(“;”);
对于(变量i=0;i
似乎您的请求方法不匹配。当你应该做一个帖子的时候,你正在做一个GET

此行引发404,因为没有
请求。POST

eintrag = get_object_or_404(Eintrag, id=request.POST.get('eintrag'))
我邀请您使用
django.views.decorators.http.require\u POST
来装饰这个视图,这样您就得到了一个
HTTP405方法不允许的错误
,它比404更好地反映了方法问题

我认为它来自于您的Ajax请求是如何在JS中完成的(请参阅)

你能试着改变一下吗

function vote(eintragID) {
  $.ajax({
    ...

看起来您的请求方法不匹配。当你应该做一个帖子的时候,你正在做一个GET

此行引发404,因为没有
请求。POST

eintrag = get_object_or_404(Eintrag, id=request.POST.get('eintrag'))
我邀请您使用
django.views.decorators.http.require\u POST
来装饰这个视图,这样您就得到了一个
HTTP405方法不允许的错误
,它比404更好地反映了方法问题

我认为它来自于您的Ajax请求是如何在JS中完成的(请参阅)

你能试着改变一下吗

function vote(eintragID) {
  $.ajax({
    ...

同样的错误:油灰上写着:找不到:/vote/[12/Jun/2016 18:17:15]“GET/vote/HTTP/1.1”404 1722好吧,如果你做一个GET请求,你总是会遇到问题,你必须以某种方式将其更改为POST请求。更改JS文件后,不要忘记收集static。
code
function.vote(eintragID){$.ajax({method:“POST”,url:/vote/”,数据:{“eintrag”:eintragID},success:function(){$(“#eintrag vote-”+eintragID)。hide();$(“#eintrag title-”+eintragID)。css({“左边距”:“15px”};},标题:{'X-CSRFToken':CSRFToken});返回false;}
code
我应该在哪里更改它?这应该是一个POST请求,但是服务器一直说Get确保你在浏览器上的缓存无效,并且你使用的是最新版本的JS文件。检查网络选项卡以查看实际发送到服务器的请求。另外,我邀请你用
d来装饰你的视图jango.views.decorators.http.require_POST
,因此您会得到一个http错误代码,该代码最能反映您的问题。相同的错误:油灰上写着:找不到:/vote/[12/Jun/2016 18:17:15]“get/vote/http/1.1“404 1722如果您执行GET请求,您总是会遇到问题,您必须以某种方式将其更改为POST请求。更改JS文件后,不要忘记收集static。
code
function.vote(eintragID){$.ajax({method:“POST”,url:/vote/”,数据:{“eintrag”:eintragID},success:function(){$(“#eintrag vote-”+eintragID)。hide();$(“#eintrag title-”+eintragID)。css({“左边距”:“15px”};},标题:{'X-CSRFToken':CSRFToken});返回false;}
code
我应该在哪里更改它?这应该是一个POST请求,但是服务器一直说Get确保你在浏览器上的缓存无效,并且你使用的是最新版本的JS文件。检查网络选项卡以查看实际发送到服务器的请求。另外,我邀请你用
d来装饰你的视图jango.views.decorators.http.require\u POST
,这样您就会得到一个http错误代码,它最能反映您遇到的问题。