Сообщение проверки формы Django не отображается в viewa в сообщении jquery ajax - PullRequest
0 голосов
/ 14 октября 2011

Я создал форму django и показал ее на странице html из представлений django.На странице мне нужно опубликовать данные из jquery ajax, и я сделал, если данные действительны, тогда мой действительный django получит True и выполнит задачу и вернет значение json.

Но в случае, если недопустимые данные означают, что это будетне отображать в соответствующий html-файл с сообщениями об ошибках django, такими как обычная отправка формы.

Есть ли способ сделать сообщение проверки django, отображаемое в соответствующих полях (как обычная проверка сообщения django), методом jjery ajax postПожалуйста, кто-нибудь советует, Thnaks.

Ответы [ 2 ]

1 голос
/ 14 октября 2011
0 голосов
/ 26 апреля 2012

Вы должны визуализировать HTML-код вашей формы с помощью render_to_string, а не render_to_response, чтобы экранировать и установить его как строку в кодировке Unicode

Я использовал это для парсера BeautifulSoup HTML, XHTML и XML, чтобы получить точный HTML-код формыкак это:

        if form.is_valid():
            form.save()
            html = render_to_string("template.html",
            {'form':form},context_instance=RequestContext(request))            
            soup = BeautifulSoup(html)
            html_form = soup.findAll('form')            
            json = simplejson.dumps({'status':True,
                'html':unicode(html_form[0]),
                'umessage':js_translators.NotifyMessage.data_saved}, ensure_ascii=False) 
            return HttpResponse(json, mimetype="application/json")
        else:
            html = render_to_string("template.html",
            {'form':form},context_instance=RequestContext(request))            
            soup = BeautifulSoup(html)
            html_form = soup.findAll('form')            
            json = simplejson.dumps({'status':False,
                'html':unicode(html_form[0]),
                'umessage':js_translators.NotifyMessage.data_wrong}, ensure_ascii=False)
            return HttpResponse(json, mimetype="application/json")

Итак, на стороне клиента я просто получаю ответ с помощью jQuery и Ajax и переписываю код формы с помощью:

$('#myform').html(response.html);

С этим я решил эту проблему с проверкой формы django с помощью ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...