Django-ratings和Jquery集成?

时间:2011-01-24 00:37:26

标签: jquery python django

如何让django-ratings与Jquery一起使用?

我要做的是允许用户选择他们想要提供产品的明星,以及异步处理相应的评级。我意识到这可能是基本的AJAX,如果这是一个愚蠢的问题我会道歉。

先谢谢你。

3 个答案:

答案 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,但你可能有一个复杂的算法来计算出星数