我有一个 Django 模型,其中包含一个ManyToMany
名为 的字段images
,以及该模型的一个简单字段ModelForm
。
我正在尝试使用 jQuery 和一个非常基本的UpdateView
.
模型领域
images = models.ManyToManyField(
RawImage,
null = True,
)
表格
class PublicDataPoolForm(forms.ModelForm):
error_css_class = 'error'
class Meta:
model = PublicDataPool
更新视图
class PublicDataPoolAddDataView(AjaxableResponseMixin, UpdateView):
model = PublicDataPool
form_class = PublicDataPool_ImagesForm
@method_decorator(user_passes_test(lambda u: user_has_active_subscription(u)))
def dispatch(self, *args, **kwargs):
return super(PublicDataPoolAddDataView, self).dispatch(*args, **kwargs)
jQuery发布数据
$.ajax({
type: 'post',
dataType: 'json',
url: '/rawdata/publicdatapools/' + pk + '/add-data/',
data: {images: [1, 2]}
});
我得到一个ValidationError
,因为该字段images
是必需的。request.POST
如果我在 my 中打印 my UpdateView
,我会得到:
<QueryDict: {u'images[]': [u'1', u'2']}>
我相信问题出在那些[]
,因为我已经检查了另一种以更传统方式发布的表单,并且字段名称request.POST
中没有这些[]
。
知道我错过了什么吗?