2016-03-29 25 views
3

Django 1.8.8'deki projede çalışıyorum ve bir JSAV biçimine bir django formunu dönüştürmem gerekiyor, böylece bir AJAX çağrısı aracılığıyla tarayıcıya gönderebiliyorum.Django Formunu AJAX üzerinden JSON olarak gönder

Bu paket Pypi'de bulunmamaktadır (https://github.com/WiserTogether/django-remote-forms). Son işten sonra 2 yaşın yanında.

Lütfen bana ne yapacağınız veya hangi paketi kullanacağınız konusunda tavsiyede bulunabilir misiniz?

Yardımlarınız için şimdiden teşekkür ederiz.

+0

Biraz daha bilgi verebilir misiniz? AJAX çağrısından aldığınız formla ne yapmayı planlıyorsunuz? JSON içinde mi olmalı yoksa form HTML olarak mı işlenir? –

+0

Yaptığınız şey hakkında kendi kararınızda daha net olmanız gerekir. Django formu, sunucuda çalışan koddur. Aslında "JSON formatına dönüştürmek ve tarayıcıya göndermek" ne anlama geliyor? Tarayıcıya _from_ tarayıcıyı sunucuya göndereceğiniz anlamına mı geliyorsunuz, o zaman JSJa formatlı bir yanıtla Drego'yu _reply_'a mı ihtiyacınız var? – Anentropic

+0

Üzgünüm yeterince açık olmasaydım. Benim yapmaya çalıştığım bir form bir JSON dönüştürmek, bu yüzden istemci tarafında yazdırabilirsiniz. Bunun nedeni, kullanıcının kimliği doğrulanmamışsa belirli bir işlem gerçekleştirdikten sonra oturum açmaya zorlanmasıdır. Umarım açıklamam daha açık olacaktır. – Kornikopic

cevap

-1
<script> 
var data = $("#form_id").serialize() 
$.ajax({ 
    type: "POST", 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 
</script> 

sanırım ... belki ... onun gerçekten yapabileceğin

0

iki temel şeyler soruyorsun ne olduğu belli değildir:

  • bir HTML formu Render dize ve gönder.

  • HTML'nin oluşturulabileceği bir JSON nesnesi oluşturun.

    import json 
    def form_to_json(form): 
        result = {} 
        for name, field in form.fields.iteritems(): 
         result[name] = field_to_dict(field) 
        return json.dumps(result) 
    
    def field_to_dict(field): 
        return { 
         "type": field.__class__.__name__, 
         "widget_type": field.widget.__class.__name, 
         "hidden": field.widget.is_hidden, 
         "required": field.widget.is_required, 
         "label": field.label, 
         "help_text": field.help_text, 
         "min_length": field.min_length, 
         "max_length": field.max_length, 
         "initial_value": field.initial, 
        } 
    

    da hata iletileri sunucu tarafı işlemek istiyorsanız, muhtemelen o field_to_dict bilgiler de içermelidir:

Burada json içine bir form nesnesi dönüşebilir nasıl bir örnek.

Bir formu html olarak oluşturmak için, onu bir dizeye dönüştürmeniz yeterlidir.

+0

Vay! Çok teşekkürler. Denemeyi deneyeceğim. Sana haber veririm. Tekrar teşekkürler. – Kornikopic