我有一个调用我的 django 应用程序的 javascript 应用程序(角度)。它使用整数列表来过滤响应。在 Django 中,我使用表单来清理数据。
Javascript:
app.factory('SearchData',
function(){
return {
shop:[],
sort:'',
xhr:'',
brand:[],
};
});
app.factory('SearchQuery',
['$http', '$location', '$route', 'SearchData',
function($http, $location, $route, SearchData){
return {
getItems: function(){
return $http.get('/search/',{
params: SearchData,
responseType: 'json',
});
}
};
}
]);
蟒蛇形式:
class SearchForm(forms.Form):
shop = forms.IntegerField(widget=forms.SelectMultiple(),required=False)
sort = forms.CharField(max_length=1, min_length=1, required=False)
brand = forms.IntegerField(widget=forms.SelectMultiple(),required=False)
我得到了商店和品牌的整数列表,但我不知道如何在 django 端处理它。我不想使用 MultipleChoiceField,因为我需要在表单中提供选择(这会创建不必要的查询)。我想要做的就是有一个整数列表。
上面的表格会抛出“输入一个整数。”。我可以放弃表格并使用 request.GET.getlist('shop') (有效)。但如果可能的话,我宁愿使用表格......
更新,现在我正在使用 MultipleChoiceField 并在视图中验证之前传递选择。喜欢:
shops = request.GET.getlist('shop', None)
sf = SearchForm(request.GET)
sf.fields['shop'].choices = shops
它有效,但它并不漂亮。