Django, UpdateView, обновление с использованием ajax - Python
Формулировка задачи:
Django 1.10.
jquery-3.1.0
Решил сделать обновление данных через ajax. В общем, получаю чистое окно браузера. В Хроме в developer tools смотрю в дебаггере: Попадаю, в fail. И параметры jqXHR.status=0, textStatus = "error", errorThrown="". Причем, функцию попробовал вручную - все работает. И через аякс данные модели обновляет. А вот отразить результат - пробема. Миксин отрабатывает, шлет на выход данные и код 200. Пытаюсь шагать, дохожу в утробе Django до функции reloader_thread. А там цикл - while RUN_RELOADER. В общем, пошагал я его, пошагал. И на том и дело кончилось, может, он вечный. Говоря кстати, при наличии обновления через ajax мне не надо уже обычного обновления. Хотя, мне бы его хотелось оставить - на этапе отладки мне нравится посмотреть результат обновления в браузере. В общем, что-то я сделал не так. Подскажите, пожалуйста, где ошибся.views.py
Листинг программы
- class FrameUpdate(AjaxableResponseMixin, UpdateView):
- model = Frame
- form_class = FrameUpdateForm
- template_name = "general/ajax/ajax_form.html"
- def get_success_url(self):
- success_url = reverse_lazy("frame:frame_detail_ajax",
- kwargs={"pk":self.object.id})
- return success_url
frame.js
Листинг программы
- function fail(jqXHR, textStatus, errorThrown){
- debugger;
- }
- function post(){
- $.ajax({
- method: "POST",
- url: "http://localhost:8000/frame/2/update/",
- data: $("#frame_form").serialize(),
- success: show_post,
- error: fail
- });
- }
Решение задачи: «Django, UpdateView, обновление с использованием ajax»
textual
Листинг программы
- def runner(request):
- response = 'error'
- if request.method == "GET":
- parser.WORKED = not parser.WORKED
- if parser.WORKED:
- try:
- parser.run()
- except Exception as e:
- response = str(e)
- else:
- response = 'ok'
- else:
- response = 'no'
- return HttpResponse(response, content_type='text/html')
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д