我正在使用djangoratingsapp创建一个“喜欢”和“不喜欢”按钮的系统,一切似乎都运行良好。但是,我在模板中使用了一种非常基本的按钮类型布局,并使用标准POST协议注册按钮并输入评级。我对这种方法的主要问题是,每个页面上都有很多注释,用户可以像按钮一样按下这个注释,并且每次按下按钮后我都会重新加载页面,并将用户带回到页面顶部这在最终用户的实践中非常烦人。我想知道什么是最简单的方法来按下按钮而不重新加载Django应用程序中的整个页面。我搜索并正在寻找彗星。我想知道是否有更简单的方法,或者如果有人想给我一些提示,我会非常感激。这不是一个花哨的网站,我唯一需要的是没有页面重新加载的按钮按下,没有必要像现场聊天或实时状态更新等。提前感谢。
以下是我用于模板中按钮的简单代码:
<form action="/myapp/r/{{pageid}}/" method="post">
{% csrf_token %}
<input type="submit" class="btn" value="+1" name="likebtn"/>
</form>
以下是相关按钮的views.py代码:
if (request.POST.get('likebtn')):
votenum = instance.likerating.votes #get the number of total votes before casting a vote
pagelikerating = instance.likerating.add(score=2, user=request.user, ip_address=request.META['REMOTE_ADDR']) #use the djangoratings app to add the rating
if votenum != instance.likerating.votes: #check to see if the voting went through or got blocked from IP limit. If voting went through, the votenum variable will be 1 integer lower than the new queried total votes
instance.likeratingcounter += 1 #this is a simple integerfield in the model that serves as a counter for number of likes
instance.save() #save the addition of +1 on the counter
答案 0 :(得分:0)
所以我得到了答案,因为丹尼尔有点澄清。谢谢Daniel!你可以使用简单的AJAX。这里有一个很好的指南,对于探戈上的按钮与django教程: http://www.tangowithdjango.com/book/chapters/ajax.html