【发布时间】:2016-05-13 09:50:51
【问题描述】:
好的,这是我目前所理解的: 我可以将数据从 jquery 以 json 格式传递给 django,如下所示: AJAX 数据:{'name' : 'flag', list_of_ids : [12,32,12,32]}
Django 的 request.POST 数据:{'name' : 'flag', 'list_of_ids[]' : [12,32,12,32]}
现在,要访问 django 中的列表,您可以这样做:request.POST.getlist('list_of_ids')
现在,假设我想清理 list_of_ids[] 的输入。
所以我创建了一个 forms.py,名称 = forms.CharField(),list_of_ids = forms.ModelMultipleChoiceField(queryset=ObjectModel.objects.all(), required=False)
返回的“清理”数据恰好是:{'name' : 'flag', 'list_of_ids' : []}
现在我的问题是,我怎样才能使 forms.py 与它一起工作,以便它实际上接受 list_of_ids[],并输出 list_of_ids 的清理数据? 这可能吗?
编辑 这是我的班级表格:
class ModelForm(form.Form):
name = form.CharField()
relation = forms.ModelMultipleChoiceField(queryset=ForeignObjects.objects.all(), required=False)
然后是views.py atm:
def test_view(request):
form = ModelForm(request.POST)
if form.is_valid():
#do stuff
#do stuff
这里是 ajax 调用: $.ajax({ url: '/test_url/', 类型:'POST', 数据: { 名称:'测试', list_of_ids:[12,32,41] } })
好的,如解释,从javascript到django,会是这样的数据:
{
'name' : 'test',
'list_of_ids[]' : [12,32,41]
}
这就是 django 看到的。所以访问 list_of_ids[] 将是 request.POST.getlist('list_of_ids[]')。 现在,如果我将它传递给表单,django 不会捕获 list_of_ids[] 而是将 list_of_ids 映射为一个空列表。我如何在表格中捕捉到这个?它需要是一个对象列表吗? (我试过了)
【问题讨论】:
标签: jquery python ajax django forms