Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 48
1

Django + Ajax. Правильно ли я составил запрос?

18.11.2015, 14:55. Показов 1613. Ответов 2

Добрый день уважаемые форумчане. Прошу помидорами не кидать, только учусь. Проблема с ajax запросами. Точнее, как я понимаю они теряются или не туда уходят. Т.к. при успехе у меня JS перезагружает страницу, она перезагружается, т.е. скрипт выполняется и отправляет. А вот запись в БД не изменяется.
CRM мое приложение по адресу {{url}}/crm лежит. И в нем уже есть подвкладки, т.е. {{url}}/crm/my_work это путь вкладки, которую я скинул сюда. Объясните пожалуйста что к чему, и с полным примером кода или исправлением моего пожалуйста, что бы мне разобраться. Прикрепляю код:

views.py
Python
1
2
3
4
5
6
7
8
9
10
11
def NBEdit(request):
    if request.method == "POST" and request.is_ajax():
        MD = MyDela(
            pk=request.POST.get("id", ""),
            name=request.POST.get("name", "")[:250],
            information=request.POST.get("info", "")
        )
        MD.save()
        return HttpResponse("ok")
    else:
        return HttpResponse("bad")
models.py
Python
1
2
3
4
5
6
7
8
class MyDela(models.Model):
    name = models.CharField(max_length=250)
    kr_info = models.CharField(max_length=300)
    date_firstly = models.DateTimeField(auto_now_add=True)
    date_edit = models.DateTimeField(auto_now=True)
    information = models.TextField()
    status = models.IntegerField()
    user = models.ForeignKey(User)

urls.py моего приложения, НЕ ПРОЕКТА ЦЕЛИКОМ
Python
1
2
3
4
5
6
urlpatterns = patterns('',
    # ex: /cab Klients/
    url(r'^$', views.main, name='crm_main'),
    url(r'^my_work/new', views.ValidLoginMain, name='crm_new_NB'),
    url(r'^my_work/newNB/', views.NBEdit, name='crm_NBEdit'),
)


n_b_new.html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <div class="new_notebook">
        <form method="POST">
        {% csrf_token %}
            <div class="new_head_notebook" id="name" contentEditable="true">
                {{MD.name}}
            </div>
            <div class="save"><input id="save" type="button" value="Сохранить" onclick = "zapros();"/></div>
            <div class="new_information_notebook" id="information" contentEditable="true">
                {{MD.information}}
            </div>
            <div style="display:none" id="pk">{{MD.id}}</div>
        </form>
    </div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    <script>
function zapros() {
//
    var name = document.getElementById("name").innerHTML;
    var info = document.getElementById("information").innerHTML;
    var id = document.getElementById("pk").innerHTML;
//
// Если поля заполнены, отправляем их значения
    if (true) {
        $.ajax({
            url: "{{url}}/crm/my_work/newNB/",
            type: 'POST',
            dataType:"html",
            data: {
                "name": name,
                "info": info,
                "id": id,
            },
            error: function() {
                alert('Ошибка получения запроса');
            },
// При успехе очищаем поля и меняем кнопочку
            success: function(data) {
             location.reload(); // для проверки, что скрипт работает
            },
// CSRF механизм защиты Django
            beforeSend: function(xhr, settings) {
                console.log('-------------before send--');
                function getCookie(name) {
                    var cookieValue = null;
                    if (document.cookie && document.cookie != '') {
                        var cookies = document.cookie.split(';');
                        for (var i = 0; i < cookies.length; i++) {
                            var cookie = jQuery.trim(cookies[i]);
                            // Does this cookie string begin with the name we want?
                        if (cookie.substring(0, name.length + 1) == (name + '=')) {
                            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                            break;
                        }
                    }
                }
                return cookieValue;
                }
                if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
                    // Only send the token to relative URLs i.e. locally.
                    xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
                }
            }
        });// ajax
    }
    return false;
};
</script>
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2015, 14:55
Ответы с готовыми решениями:

Скажите правильно составил запрос или нет?
Напишите запрос для получения списка учебных заведений, в названиях которых использованы кавычки. ...

Как правильно отправлять запрос из вне в django?
Добрый вечер! Подскажите пожалуйста. Всю голову сломал, весь гугл перерыл. Все что смог найти это...

Правильно ли составил
Здравствуйте. Вот хочу в САПЕ купить ссылок внутренних. ВОПРОС: Я составил 11 текстов, вот...

Как написать Ajax запрос правильно?
У меня есть функция php, &quot;Out()&quot; добавляющая несколько div в index.html. Как написать Ajax-код так,...

2
21 / 34 / 14
Регистрация: 23.07.2014
Сообщений: 148
20.11.2015, 03:51 2
Ну так логгируй, смотри в каком месте не отрабатывает. Создание новой сущности не полное, не все поля назначаются, pk не нужно присваивать!
0
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 48
20.11.2015, 12:29  [ТС] 3
PK для того, что бы не добавлять в БД, а изменить запись. Я меняю в бд готовую запись.
И не полное потому же
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2015, 12:29

Как правильно отправлять ajax-запрос?
Всем привет! Пытаюсь разобраться с ajax-запросами. Вот код, который по хорошему должен скачивать...

Как правильно написать AJAX запрос
Парни всем привет. Подскажите пожалуйста как правильно составить AJAX запрос для обработки формы. ...

правильно ли я составил код ?
помогите , правильно ли я составил код ? решение (программный код) :: #include &lt;iostream.h&gt; ...

Как правильно написать ajax-запрос контролеру?
страница html: {.... eventDragStop: function (event, jsEvent, ui, view) { if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.