Джанго-рейтинги и интеграция Jquery? - PullRequest
1 голос
/ 24 января 2011

Как заставить django-рейтинги работать с Jquery?

Что я пытаюсь сделать, это позволить пользователю выбрать, сколько звездочек он хочет дать продукту, и получить соответствующий рейтингобрабатывается асинхронно.Я понимаю, что это, вероятно, базовый AJAX, и я прошу прощения, если это глупый вопрос.

Спасибо заранее.

Ответы [ 3 ]

2 голосов
/ 26 января 2011

Я не уверен, что понимаю ваш вопрос, но ваш вопрос со стороны 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 голос
/ 24 января 2011

Обычно преобразовать в 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!')

Но изто, что я вижу здесь Есть несколько полных шаблонов для генерации реального ответа.Таким образом, вы можете либо попробовать поработать с этим в обработчике ответов JQuery AJAX, проанализировав ответ, либо вы можете написать декоратор для AddRatingView. call , который анализирует ответ на стороне Python и возвращает JSON-дружественный JSON,

Я предполагаю, что вы не хотите много портить существующий код django-rating, например, чтобы сохранить возможность его обновления.

0 голосов
/ 24 января 2011

Вы правы, это базовый Ajax, но у вас может быть сложный алгоритм для определения количества звезд как

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...