加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 通过AJAX将Django表单作为JSON发送

发布时间:2020-12-20 13:11:06 所属栏目:Python 来源:网络整理
导读:我正在处理Django 1.8.8中的项目,我需要将 django表单转换为 JSON格式,以便通过AJAX调用将其发送到浏览器. 我发现这个包(https://github.com/WiserTogether/django-remote-forms)在Pypi上不再有用.自上次提交以来已经2年了. 您能否就如何使用或使用哪种包装
我正在处理Django 1.8.8中的项目,我需要将 django表单转换为 JSON格式,以便通过AJAX调用将其发送到浏览器.

我发现这个包(https://github.com/WiserTogether/django-remote-forms)在Pypi上不再有用.自上次提交以来已经2年了.

您能否就如何使用或使用哪种包装给我一些建议?

预先感谢您的帮助.

解决方法

你可以做的两件事是:

>将表单呈现为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,只需将其转换为字符串即可.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读