Форум сайта python.su
Здравствуйте! Подскажите пожалуйста как связать фронтэнд и бекэнд с помощью JSON. Есть страница для редактирования контента, который сохраняется в базе данных. Данные отправляются через форму с помощь Ajax.
models.py:
from django.db import models class Info(models.Model): name = models.CharField(max_length = 200) surname = models.CharField(max_length = 200) date_of_birth = models.CharField(max_length = 200) bio = models.TextField() contacts = models.TextField() def __unicode__(self): return unicode(self.name + " " + self.surname)
from django.forms import ModelForm from models import Info class EditMyInfoForm(ModelForm): class Meta: model = Info fields = ['name', 'surname', 'date_of_birth', 'bio', 'contacts']
def edit_my_info(request, template_name = "edit_page1.html"): info = Info.objects.get(pk=1) if request.POST: form = EditMyInfoForm(request.POST, instance=info) if form.is_valid(): form.save() if request.is_ajax(): return render_to_response("success.html") else: return redirect('editmyinfo_success') else: form = EditMyInfoForm(instance=info) return render(request,template_name,{"form":form, "title":"Edit page"})
{% extends "base.html" %} {% load staticfiles %} {% block content %} <h3><a href ="/">Main page</a></h3> <div class="info"> <form id="myForm" action="" method="POST" > <div id="ajaxwrapper"> {% csrf_token %} {{ form.non_field_errors }} {{form.as_p}} <p id="sendwrapper"><input type="submit" value="save" id="sendbutton"/></p> </form> </div> {% endblock %} {% block scripts %} <script src="{% static 'static/js/load_submissions.js' %}"></script> {% endblock %}
Офлайн
megolomanУ вас вопрос по JS или по Python? Из вопроса не понятна суть проблемы.
Подскажите пожалуйста как связать фронтэнд и бекэнд с помощью JSON.
Офлайн
Есть jquery.forms, делает отправку формы через AJAX. но на сервер нужно отправлять в отчет JSON, и показывать ошибки через JS.
Офлайн
Все равно не понятно.
megolomanОк, данные на сервер отправляются.
Есть jquery.forms, делает отправку формы через AJAX
megolomanТо есть нужно? Ты ж только что сказал, что у тебя уже есть компонент, который делает оправку.
но на сервер нужно отправлять в отчет JSON
megolomanОшибки должны прийти на клиента как ответ на твой AJAX-запрос. Есть форма, после if form.is_valid() в форме появляются ошибки form.errors, отправляй их с помощью JsonResponse. Что дальше с этим делать - твои проблемы, джанга вообще никак не затрагивает вопросы манипуляций с данными или DOM на клиенте.
показывать ошибки через JS
Офлайн
ясно, спасибо, буду копаться тогда в JS
Офлайн