Форум сайта python.su
0
Здравствуйте! Подскажите пожалуйста как связать фронтэнд и бекэнд с помощью 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 %}
Офлайн
568
megolomanУ вас вопрос по JS или по Python? Из вопроса не понятна суть проблемы.
Подскажите пожалуйста как связать фронтэнд и бекэнд с помощью JSON.
Офлайн
0
Есть jquery.forms, делает отправку формы через AJAX. но на сервер нужно отправлять в отчет JSON, и показывать ошибки через JS.
Офлайн
568
Все равно не понятно.
megolomanОк, данные на сервер отправляются.
Есть jquery.forms, делает отправку формы через AJAX
megolomanТо есть нужно? Ты ж только что сказал, что у тебя уже есть компонент, который делает оправку.
но на сервер нужно отправлять в отчет JSON
megolomanОшибки должны прийти на клиента как ответ на твой AJAX-запрос. Есть форма, после if form.is_valid() в форме появляются ошибки form.errors, отправляй их с помощью JsonResponse. Что дальше с этим делать - твои проблемы, джанга вообще никак не затрагивает вопросы манипуляций с данными или DOM на клиенте.
показывать ошибки через JS
Офлайн
0
ясно, спасибо, буду копаться тогда в JS
Офлайн