Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 12, 2015 16:17:27

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

JSON для связи фронтэнда и бекэнда

Здравствуйте! Подскажите пожалуйста как связать фронтэнд и бекэнд с помощью 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)

forms.py:

from django.forms import ModelForm
from models import Info
class EditMyInfoForm(ModelForm):
    class Meta:
        model = Info
        fields = ['name', 'surname', 'date_of_birth', 'bio', 'contacts']

views.py:

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"})

edit_page.html:

{% 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 %}

Офлайн

#2 Ноя. 12, 2015 16:42:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

JSON для связи фронтэнда и бекэнда

megoloman
Подскажите пожалуйста как связать фронтэнд и бекэнд с помощью JSON.
У вас вопрос по JS или по Python? Из вопроса не понятна суть проблемы.



Офлайн

#3 Ноя. 12, 2015 21:59:02

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

JSON для связи фронтэнда и бекэнда

Есть jquery.forms, делает отправку формы через AJAX. но на сервер нужно отправлять в отчет JSON, и показывать ошибки через JS.

Офлайн

#4 Ноя. 13, 2015 05:03:50

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

JSON для связи фронтэнда и бекэнда

Все равно не понятно.

megoloman
Есть jquery.forms, делает отправку формы через AJAX
Ок, данные на сервер отправляются.
megoloman
но на сервер нужно отправлять в отчет JSON
То есть нужно? Ты ж только что сказал, что у тебя уже есть компонент, который делает оправку.
megoloman
показывать ошибки через JS
Ошибки должны прийти на клиента как ответ на твой AJAX-запрос. Есть форма, после if form.is_valid() в форме появляются ошибки form.errors, отправляй их с помощью JsonResponse. Что дальше с этим делать - твои проблемы, джанга вообще никак не затрагивает вопросы манипуляций с данными или DOM на клиенте.



Офлайн

#5 Ноя. 13, 2015 16:36:26

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

JSON для связи фронтэнда и бекэнда

ясно, спасибо, буду копаться тогда в JS

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version