почему пост ничего не делает - PullRequest
0 голосов
/ 29 марта 2011

все! Я пишу простое приложение на Django. На одной из страниц есть скрипт, который работает по нажатию кнопки и использует пост ajax. Проблема в том, что метод post не вызывает выполнение серверного кода, а просто выполняет функцию каждый раз при ошибке.

сценарий:

<script type="text/javascript">
    (function($) {
        $(document).ready(function(){
            {% for obj in cl.result_list %}
                $('#done_{{ obj.pk }}').click(function() {
                    if ($(this).html().indexOf("icon-yes") != -1) {
                        $action = "no";
                    }
                    else {
                        $action = "yes";
                    }
                    $.ajax({
                                type: "POST",
                                url: "/on_hold_done/done/" + $action + "/{{ obj.pk }}/",
                                success: function(response) {
                                    alert("success")
                                },
                                error: function(response) {
                                    alert("error")
                                }
                            })
                });
            {% endfor %}
        });})(django.jQuery);
</script>

в urls.py:

(r"^on_hold_done/(on_hold|done)/(yes|no)/(\d*)/$", "todo.views.on_hold_done")

в views.py:

@staff_member_required
def on_hold_done(request, mode, action, pk):
    """simple code here"""
    return HttpResponse('')

1 Ответ

0 голосов
/ 29 марта 2011

Если вы используете Django 1.3, имейте в виду, что все запросы AJAX теперь подлежат защите от подделки межсайтовых запросов, поэтому вам нужно будет добавить дополнительный JS-файл для автоматического включения токена CSRF в ваше представление ajax. Смотри документы здесь

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