Django не может проверить многозначное поле, отправленное jQuery - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь отправить форму с многозначным полем, используя $ .ajax, затем проверяю ее, используя форму 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

1018 * 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 Форма Джанго может распознать только первое.

...