我正在处理Django 1.8.8中的项目,我需要将django表单转换为JSON格式,以便通过AJAX调用将其发送到浏览器。
我发现这个包(https://github.com/WiserTogether/django-remote-forms)在Pypi上不再可用。自上次提交以来已经2年了。
请您就如何使用或使用哪种包提供一些建议?
提前感谢您的帮助。
答案 0 :(得分:1)
您可以做的两件事是:
将表单呈现为HTML字符串,然后发送。
创建一个JSON对象,可以从中构建HTML。
以下是如何将表单对象转换为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,
}
如果您还想处理服务器端的错误消息,您也应该在field_to_dict
中包含该信息。
要将表单呈现为html,只需将其转换为字符串。
答案 1 :(得分:-1)
<script>
var data = $("#form_id").serialize()
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
</script>
我猜......也许......真的不清楚你在问什么