Estoy trabajando en un proyecto en Django 1.8.8 y necesito convertir un formulario django en formato JSON para poder enviarlo al navegador a través de una llamada AJAX.
Encontré este paquete ( https://github.com/WiserTogether/django-remote-forms ) que ya no está disponible en Pypi. Además, tiene 2 años desde la última confirmación.
¿Podría darme algún consejo sobre qué hacer o qué paquete usar?
Gracias de antemano por su ayuda.
Las dos cosas principales que podrías hacer son:
Represente el formulario en una cadena HTML y envíelo.
Cree un objeto JSON, a partir del cual se pueda construir el HTML.
Aquí hay un ejemplo de cómo puede convertir un objeto de formulario en json:
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, # optional "max_length": field.max_length, # optional "initial_value": field.initial, } Si también desea manejar los mensajes de error del lado del servidor, probablemente también debería incluir esa información en field_to_dict .
Para representar un formulario como html, simplemente conviértalo en una cadena.
<script> var data = $("#form_id").serialize() $.ajax({ type: "POST", url: url, data: data, success: success, dataType: dataType }); </script>Supongo... tal vez... realmente no está claro lo que estás preguntando.