Django Form如何验证如下格式的JSON ?

实际现象

前端可能传复杂JSON, 当然格式是约定好的.

但是, Django的Form貌似只能处理一层, 搜索了google, 都推荐使用 django rest framework( 但是我们目前没有引入)

相关代码

  • 前端可能的json
{
    string "A": "xxxx",                      用CharField
    number "B": 23                            IntegerField
    object "C" : {                            ???
          string "a": 
          string "b"
    },
    array[object] "D" : [                     ???
        {
            string "a":
            string "b"
        },
        {},
    ]
}

想做什么
1. C 是不是一个object 
    i. a有没有
    ii. b有没有
2. D 是不是 array[object]
   i. 每一个object是不是仅包含 a 和 b
  • 我的 Form
class MyForm(forms.Form):
    A = forms.CharField()
    B = forms.CharField()
    C = ?          
    D = ?
    
    ?
    def cleanC(self

上下文环境

  • 前后端分离项目, 可理解为「REST项目」, 非传统的「模板项目」
  • Django 1.11 (django rest framework解决此问题很简单, 但是目前项目没有引入它)
  • 前端只用 JSON 和server通信
  • Form 验证的只是JSON数据,不是传统的「form表单」

尝试解决 & 我的理解

  • 可能需要写一个 ArrayField 和 ObjectField 之类的, 但是我翻遍了django文档, 貌似django没有针对此类问题的解法
  • 可能需要写 def cleanA, 但是定义表单字段的时候怎么做?
阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题