Jon*_*Cox 5 python django ajax jquery rating-system
我正在尝试在Django网站上实施星级评分系统.
将评分存储在我的模型中进行排序,并在页面上显示分数.但我希望用户能够在不刷新或更改页面的情况下对页面进行评级(基本上从1到5).
我发现了以下内容,并且喜欢这里的明星风格:http://jvance.com/blog/2008/09/22/JQueryRaterPluginNew.xhtml
目前对javascript和AJAX的理解有限.有没有人知道如何在上面的例子中结合AJAX和Django使用星星,这样你就可以在用户选择评级时更新数据库(模型)而不刷新页面?
用户只能投票一次也很重要,即不允许他们对页面进行两次评级.它存储在模型中是否已经投票以及他们之前的投票是什么.但是我怎么能修改星星来表明这一点呢?
所以如果你知道如何做这些事情,或者更合适的星级图形解决方案,或者任何好的教程......请分享.谢谢.
Jos*_*ton 10
AJAX听起来很可怕而且令人困惑,但并非必须如此.基本上你想要做的是将一些数据发布到特定的url/view组合.有关使用AJAX将数据发送到服务器的更多信息,请参阅jQuery.post.
#urls
urlpatterns += patterns('',
url(r'^article/rate/', 'article.rate'),
#views
def rate(request):
if request.method == 'POST':
# use post data to complete the rating..
#javascript
$.post("/article/rate", { rating: 3, article: 2 },
function(data) {
// success! so now set the UI star to 3
});
Run Code Online (Sandbox Code Playgroud)
据我所知,星级评级是用无线电控制和css制作的.因此,如果您想在页面加载时显示每个用户的当前评级,只需让您的模板使用该checked选项呈现关联的广播.