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