如何让django-ratings与Jquery一起使用?
我要做的是允许用户选择他们想要提供产品的明星,以及异步处理相应的评级。我意识到这可能是基本的AJAX,如果这是一个愚蠢的问题我会道歉。
先谢谢你。
答案 0 :(得分:2)
我不确定我是否理解你的问题,但是你的问题来自javascript方面还是来自模型方面?从javascript,我使用了这样的东西
STARS_ELEMENT.stars({
callback: function(ui, type, value){
$.post('URL_ADDRESS', {rate: value},
function(data){
STARS_ELEMENT.stars("select",data);
});
}
然后在我看来,我会有一个捕获该请求并执行此操作的函数
p = Product.objects.get(id=product_id)
p.rating.add(score=int(request.POST['rate']), user=request.user, ip_address=request.META['REMOTE_ADDR'])
p.save()
并使用该请求向我发送最新的费率值。那是你在找什么?
答案 1 :(得分:1)
通常转换为AJAX就像更换一样简单:
return HttpResponse(....)
使用:
if request.is_ajax():
return json_response
else:
return HttpResponse(....)
甚至要求AJAX:
if request.is_ajax():
return json_response
else:
return HttpResponseForbidden('Only AJAX please!')
但是,从我看到here,有一些用于生成实际响应的互补模式。所以,您可以尝试使用jQuery AJAX响应处理程序,通过解析响应 - 或者您可以为AddRatingView编写装饰器。调用解析Python端的响应并返回jQuery友好JSON。
我在这里假设你不想在现有的django-rating代码中弄乱很多,例如:保留升级选项。
答案 2 :(得分:0)
你是对的,它是一个基本的Ajax,但你可能有一个复杂的算法来计算出星数