Уведомления

Группа в Telegram: @pythonsu

#1 Май 17, 2012 16:47:33

Gorazio
От:
Зарегистрирован: 2011-11-20
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Ajax-Form submission (jQuery)

Всем привет.
Начну с того, что есть:

#models.py
class Student(models.Model):
    name = models.CharField(max_length=25)
    ...
    my_photo = models.ImageField(upload_to='img/')
    def __unicode__(self):
        return '%s,%s' % (self.name, self.surname)
#forms.py
class StudentForm(ModelForm):
     def __init__(self, *args, **kwargs):
        super(StudentForm, self).__init__(*args, **kwargs)
        ...
     class Meta:
          model = Student
#views.py
@login_required
def main_page_edit(request):
    try:
        my_info = Student.objects.get(pk=1)
    except:
        my_info = None
    if request.method == 'POST':
        form = StudentForm(request.POST, request.FILES, instance=my_info, auto_id=False)
        if form.is_valid():
            form.save()
            return redirect('main')
    else:
        form = StudentForm(instance=my_info)
    return direct_to_template(request, 'main_page_edit.html',
                              {'form':form})
#'main_page_edit.html'
<form enctype="multipart/form-data" action="{% url editme %}" method="POST" id="contact-form">
	<div id="form-fields">
	{% csrf_token %}
	{{ form.as_p }}
	<p><input type="submit" value="Save" id="savebutton" name="savebutton"/></p>
	</div>
</form>
Здесь реализована форма редактирования информации о единственном студенте. Все работает.
Очень прошу, дайте ссылку или покажите пример где реализовано ajax Submission формы хотя-бы с одним текстовым и одним FileField полями.
Чтобы понять как это работает - мне нужно увидеть рабочий пример, а в интернете есть примеры или без файлового поля, или только с файловым, или только с текстовыми или и то и то но со вставками в коде типа “do something with your data”. Понимаю,что скорее всего несу ерунду - и потому прошу: помогите внести ясность. Наперед спасибо.



Офлайн

#2 Май 17, 2012 19:57:18

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

Ajax-Form submission (jQuery)

Используй http://jquery.malsup.com/form/ и проверяй ajax запрос или нет. request.is_ajax()



Офлайн

#3 Май 18, 2012 00:13:36

Gorazio
От:
Зарегистрирован: 2011-11-20
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Ajax-Form submission (jQuery)

magnet85
Используй http://jquery.malsup.com/form/ и проверяй ajax запрос или нет. request.is_ajax()
Спасибо, что откликнулись, но я знаю об этом плагине, и о request.is_ajax(). Меня интересует - как оно в природе происходит:(. Кто может, покажите пример пожалуйста.



Офлайн

#4 Май 18, 2012 12:02:33

Gorazio
От:
Зарегистрирован: 2011-11-20
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Ajax-Form submission (jQuery)

:(
HELP!



Офлайн

#5 Май 18, 2012 18:04:21

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Ajax-Form submission (jQuery)

Заходите на github.com. Находите строку поиска. Набираете в ней “request.is_ajax”. При желании указываете требуемый язык. Это Python. Получаете ~1500 результатов “как оно происходит в природе”.



Отредактировано fata1ex (Май 18, 2012 18:04:41)

Офлайн

#6 Май 26, 2012 10:33:17

vvpoloskin
От:
Зарегистрирован: 2011-09-02
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Ajax-Form submission (jQuery)

//submit_form.js
function handle(data){
           html = '' //HTML код, который будет вместо формы
           jsdata = eval('(' + data + ')');
//Обрабатываем jsdata
           formobj = $("#contact-form").html(html);
}
function senddata(){
           url = '.'
	   formobj = $("#contact-form");
//Получаем значения из формы через DOM или JQuery Plugins
           values = {'val1':val1, 'val2':val2}
           $.post(url, values, handleajax);
	});

<!--Template-->
<p><input type="submit" value="Save" id="savebutton" name="savebutton"/ onclick="senddata();"></p>

#views.py
def main_page_edit(request):
      if request.is_ajax() and request.method == 'POST':
#Обрабатываем форму
             if form.is_valid():
                     return HttpResponse(simplejson.dumps(dictionary_data_ok))
           return HttpResponse(simplejson.dumps(dictionary_data_fail))  
           



Отредактировано vvpoloskin (Май 26, 2012 10:34:37)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version