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

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

18.11.2015, 14:55. Показов 2005. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2015, 14:55
Ответы с готовыми решениями:

Django + Ajax. Правильно ли я составил запрос?
Добрый день уважаемые форумчане. Прошу помидорами не кидать, только учусь. Проблема с ajax запросами. Точнее, как я понимаю они теряются...

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

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

2
 Аватар для ivlevdenis
21 / 34 / 14
Регистрация: 23.07.2014
Сообщений: 148
20.11.2015, 03:51
Ну так логгируй, смотри в каком месте не отрабатывает. Создание новой сущности не полное, не все поля назначаются, pk не нужно присваивать!
0
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 48
20.11.2015, 12:29  [ТС]
PK для того, что бы не добавлять в БД, а изменить запись. Я меняю в бд готовую запись.
И не полное потому же
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2015, 12:29
Помогаю со студенческими работами здесь

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

Как правильно прописать запрос Ajax
Задача такая. Есть база данных, в которой хранится таблица: цитата и имя. Всего строк в таблице - 7. При загрузке страницы эти 7 записей...

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

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

Как правильно организовать ajax запрос?
Привет. Тема следующая: Вывожу на экран таблицу чего-нибудь. Жителей рая. Грубо говоря рядом с каждым именем есть кнопка...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru