According to the documentation this is enough to pass in a multi value.
def __init__(self):
super(LatestNewsAPI, self).__init__()
self.req_parser = reqparse.RequestParser()
self.req_parser.add_argument('date', type=str)
self.req_parser.add_argument('media', action='append')
I'm passing trying to append two media into a list:
rss_date_time = parser.parse('Tue, 15 Jan 2015 18:13:00 GMT')
param = {'date': rss_date_time, 'media': 'GRD', 'media': 'IND'}
url = '/api/v1.0/latest_news/?{0}'.format(urllib.urlencode(param))
rv = self.client.get(url, headers={},
environ_base={'REMOTE_ADDR': '127.0.0.1'})
However once I get there:
def get(self):
args = self.req_parser.parse_args()
date_str = args['date']
date_time = parser.parse(date_str)
media = args['media']
media contains only [u'IND']
.
What am I missing please?
It's actually an urllib problem in this case:
All I had to add was doseq=True
url = '/api/v1.0/latest_news/?{0}'.format(urllib.urlencode(param, doseq=True))
and change params to a list:
param = {'date': rss_date_time, 'media': ['GRD', 'IND']}
Now I get [u'GRD', u'IND']