Форум сайта python.su
Помогите пожалуйста реализовать передачу данных из формы в views с помощью ajax.
model.py
class Expense(models.Model): date = models.DateTimeField(verbose_name=u'Дата', default=timezone.now) expense = models.IntegerField(verbose_name=u'Расход') goods = models.ForeignKey('Goods', verbose_name=(u'Товар'), related_name='expense') def __unicode__(self): return u'%s'%(self.expense) class Meta: verbose_name_plural = "Расход" ordering=['date'] from django.forms import ModelForm from expense.models import * class ExpenseForm(ModelForm): class Meta: model=Expense
{%extends "start.html"%} {%block title%}Товар{%endblock%} {%load staticfiles%} {%load goods_extras%} {%load i18n%} {%block content%} <script type="text/javascript"> $(document).ready(function() { $("#test").submit(function(event){ event.preventDefault(); var form_data=$("#test").serializeArray; $.ajax({ type:"POST", url:"/test/", data:form_data }); }); return false; }); </script> <form id="test" method="post" action="{{action}}" >{% csrf_token %} <table> {{form}} </table> <input type="submit" value="Добавить" /> </form> {%endblock%}
url.py url(r'^test/$', start) views.py def start(request): expense_list = Expense.objects.all() action="/test/" if request.method=='POST' and request.is_ajax(): form=ExpenseForm(request.POST) if form.is_valid(): e=form.save() data = serializers.serialize('json', [e,]) return HttpResponse(data, mimetype='application/json') else: form=ExpenseForm() return render_to_response( 'start.html',locals(), context_instance=RequestContext(request))
Отредактировано anton41k (Июль 21, 2014 19:24:42)
Офлайн
А где функция то?onclick="send();"
А где такой урл то?url:"/xhr_proc/",url.py url(r'^test/$', start)
Отредактировано FishHook (Июль 21, 2014 11:52:06)
Офлайн
держите пример
... <li class="amenu" name="home/">Кнопка-список</li> ... <div id="content"> здесь будет контент, загружен после нажатия на кнопку </div>
$(".amenu").click(function(){ var page = $(this).attr('name'); $.get(("/menu/"+page), function(data){ $("#content").html(data); }; };
def menu(request, page=None, full=False): if page == "home": data = Home.objects.get(pk=1) return render_to_response('base.html', {'data': data})
url(r'^menu/(?P<page>.*)/', menu),
Отредактировано terabayt (Июль 21, 2014 13:04:07)
Офлайн
Просто столько был перепробывал что и сам запутался, уже исправил.
terabayt, спасибо попробую,но если вас не затруднит может черконете пару строчек, СПАСИБО!
Офлайн