2016-04-10 17 views
0

İçinde form oluşturduğum bir modelim var. İçeriği bir View işlevinden talep etmeden önce. Şimdi ajax.success: function içinde ele alabileceğim ek nitelikler aktarmak istiyorum.Biçim Görüntüle Oluştur ve ek veriyi json olarak ekle

Ajax:

function task_form() { 
$.ajax({ 
    url : "/somewhere/" , // the endpoint 
    type : "GET", // http method 

    // handle a successful response 
    success : function(data) { 
    if(data.attr == "whatever"){ 
     do this 
    }else{ 
     do that 
    }}, 

    // handle a non-successful response 
    error : function(xhr,errmsg,err) { 
       errorstuff 
    } 
}); 
}; 

Görünüm:

def someview(request): 
if request.method == 'POST': 
    print("shouldnt happen") 
else: 
    form = SomeForm() 
    response_data = {'form': form} 

return render(request, 'formToInsert.html', response_data) 

Ben JsonResponse (kullanarak çalıştı) ama orada bir dict html koymak nasıl nasıl emin Benim ilk js tarafında kullanın.

cevap

0

görünümünüz yapmalısınız:

def someview(request): 
if request.method == 'POST': 
    print("shouldnt happen") 
else: 
    form = SomeForm() 
    response_data = {'form': form} 

return HttpResponse(json.dumps(response_data), content-type="application/json") 

SomeForm() 'json' paketine vi seri hale getirilebilir ise emin değilim rağmen. Aksi takdirde aynı şeyi yapmak için Django 'serialize' paketini kullanabilirsiniz.

+0

Serileştirme temelde benim sorunum. Bunu yapmanın en iyi yolu nedir? Ve ajax.success'daki html'ye cevabı nasıl “deserialize” edersiniz? Ya da görmediğim süper kolay bir yolu var mı? : D – qwertasyx

+0

denediğiniz bazı kodları göstermeniz gerekir. cevabımı denedin mi? Javascript'te dataType: 'json' ayarını yaparsınız ve daha sonra diğer json nesneleri gibi döndürülen verileri kullanabilmeniz gerekir. –

İlgili konular