Найти - Пользователи
Полная версия: передача формы от ajax
Начало » Django » передача формы от ajax
1
anton41k
Помогите пожалуйста реализовать передачу данных из формы в 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%}
В start.html прописан jquery
<script type=“text/javascript” src=“/static/js/jquery-2.0.2.min.js”>.
Нужно при нажатии кнопки “Добавить” ,без перезагрузки страницы, данные передавались во views с помощью ajax.
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))

FishHook
onclick="send();" 
А где функция то?

url:"/xhr_proc/",

url.py
url(r'^test/$', start)
А где такой урл то?
terabayt
держите пример
...
<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);
    };
};
views.py
def menu(request, page=None, full=False):
    if page == "home":
        data = Home.objects.get(pk=1)
    return render_to_response('base.html', {'data': data})
urls.py
url(r'^menu/(?P<page>.*)/', menu),
если пример не осилите, когда проснусь напишу как у вас должно быть
anton41k
Просто столько был перепробывал что и сам запутался, уже исправил.
terabayt, спасибо попробую,но если вас не затруднит может черконете пару строчек, СПАСИБО!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB