Django无法验证jQuery发送的多值字段

时间:2019-01-02 20:50:49

标签: javascript jquery ajax validation django-forms

我尝试使用$ .ajax发送带有多值字段的表单,然后使用Django表单对其进行验证。但是,Django一直说该表格无效。

问题似乎是jQuery将[]追加到多值字段名的末尾。

有没有解决方法?

models.py

class MyModel(Model):
    foo = ManyToManyField(OtherModel)

forms.py

class MyForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ['foo']

views.py

def handler(request):
    form = MyForm(request.POST)
    if form.is_valid():
         # form says that 'foo' field is missing
         # 'foo[]' is received instead
         pass

javascript

$.ajax({
    url: '/add/',
    type: 'POST',
    data: {foo: [1, 2, 3]},
    success: doABC,
    error: doXYZ
});

帖子正文应为foo=1&foo=2&foo=3,但应为foo%5B%5D=1&foo%5B%5D=2&foo%5B%5D=3

Django形式只能识别前者。

0 个答案:

没有答案