как сделать ajax или jquery с django1.3

#ajax #django #jquery #python-2.7

#ajax #django #jquery #python-2.7

Вопрос:

Я абсолютно новичок в django Framework и новичок в веб-разработке и python. В настоящее время я пытаюсь реализовать ajax в своем проекте. Я не могу найти ни одного рабочего образца. Мне нужна помощь с размещением ajax или jquery в проекте django1.3.

Теперь я пытаюсь реализовать ajax с помощью приложения dojango. Я успешно устанавливаю его и пробую этот урок.

urls.py:

 (r'^dojango/', include('dojango.urls')),
(r'^simple/', 'views.simple'),
(r'^simple-ajax-set/', 'views.simple_ajax_set'),
  

views.py:

 from django.shortcuts import render_to_response
from dojango.decorators import json_response
@expect_post_request
@json_response
def simple_ajax_set(request):
    ret = {}
    firstname = request.POST['firstname']
    surname = request.POST['surname']
    if len(surname)<3:
        ret['error'] = 'Surname is too short.'
        ret['success'] = False
    if ret['success']:
        # Store the data here
        pass
    return ret
  

simple.html

 {% extends "dojango/base.html" %} 
{% block dojango_page_title %}Simple AJAX with dojango{% endblock %}
{% block dojango_header_extra %}
<script type="text/javascript">
function userFormSubmit(){
 var form = dojo.byId("userForm");
 dojo.xhrPost({url:form.action,
  handleAs:"json",
  content:{surname:form.surname.value,
   firstname:form.firstname.value
  },
  load:function(response, ioArgs){
   if (response.success){
    dojo.byId("info").innerHTML = "Submitted successfully";
   } else {
    dojo.byId("info").innerHTML = "Error: " response.error;
   }
  },
  error:function(data){ // This happens on a 500 error or alikes.
   dojo.byId("info").innerHTML = "Error sending data.";
  }
 });
}
 </script>

{% endblock %}

{% block dojango_content %}
 <form id="userForm" onsubmit="userFormSubmit(); return false;" action="/simple-ajax-set/">
  First name: <input id="firstname" /><br />
  Surname: <input id="surname" /><br />
  <input type="submit" value="Submit" /> <span id="info"></span>
 </form>
{% endblock %}
  

Когда я запускаю, я получаю исключение

 NameError at /simple-ajax-set/
name 'expect_post_request' is not defined
  

Итак, я изменил свой код, как в первой части приведенного выше руководства, и я получил следующее исключение

  'MultiValueDictKeyError at /simple-ajax-set/' , "Key 'firstname' not found in <QueryDict: {}>" when click on the submit button at simple.html.
  

Пожалуйста, помогите мне разобраться в проблеме, а также поделитесь некоторыми ссылками или кодами, касающимися ajax / jquery, который работает с django1.3. и python 2.7,

Может ли кто-нибудь предложить использовать пример hello world ajax или jquery для django1.3?

Комментарии:

1. когда я пытаюсь firstname = request.POST.get(‘firstname’) фамилия = request.POST.get(‘фамилия’), он возвращает содержимое документа: {}amp;amp; {«успех»: true}, но появляется сообщение «Произошла ошибка при разборе документа JSON. Документ может быть неправильно сформирован «.

2. Этот пример выглядит так, как будто вы используете Dojo, а не jQuery.

3. Да, @Mark Lavin, я использую проект Dojango.

4. @Mark Lavin, у меня большая проблема, я пытаюсь сделать jquery или dojo и т. Д. Последние пару недель. Но я потерпел неудачу. Я сомневаюсь, что если я использую Jquery, как я могу вызвать функцию python из готовой функции моего Jquery (из шаблона). Можете ли вы помочь мне, поделившись своими идеями или любыми ссылками. Я перепробовал много ссылок из Google, но потерпел неудачу. Спасибо

5. Я бы порекомендовал взять много в Dajax: dajaxproject.com

Ответ №1:

«Чистый» jQuery и django здесь. Это сделало меня счастливым, когда я был на вашем месте. Удачи вам!