实际现象
前端可能传复杂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, 但是定义表单字段的时候怎么做?