从Angularjs传递params到Django

时间:2014-10-23 21:04:12

标签: javascript django angularjs django-rest-framework restangular

我在视图中看到了一些意想不到的东西(调试器模式),我不确定我是否在前端或后端出错:

(Pdb) request.QUERY_PARAMS
<QueryDict: {u'types': [u'Component', u'Core']}>
(Pdb) request.QUERY_PARAMS['types']
u'Core'

我希望得到[u'Component', u'Core'],而不仅仅是一个元素。

在前端,我正在使用Restangular:

var params = {
    types: ['Component', 'Core']
};
Restangular.all('search').getList(params)...

后端代码就在DRF查询集中:

def get_queryset(self, *args, **kwargs):
    request = self.request
    import pdb; pdb.set_trace()
    ...

我是否需要对字符串列表进行一些特殊编码,或者可能是其他一些问题?

1 个答案:

答案 0 :(得分:4)

您需要使用request.QUERY_PARAMS.getlist('types'),因为request.QUERY_PARAMS AKA request.GET是一个django QueryDict。请参阅此处的文档:https://docs.djangoproject.com/en/dev/ref/request-response/#querydict-objects