Reputation: 941
I have URL like www.example.com/search?param1=abc¶m2=xyz¶m3=
, currently what I'm doing in views is something like this.
if ((request.GET.get('param1')) or (request.GET.get('param2')) or (request.GET.get('param3'))):
if request.GET.get('param1'):
value1 = request.GET.get('param1')
if request.GET.get('title'):
value2 = request.GET.get('param2')
if request.GET.get('location'):
value3 = request.GET.get('param3')
api_url = `www.api-end-point.com?p1=value1&p2=value2&p3=value3&format=json`
But you guys can see param3 is empty ,and to hit api i need to skip empty parameters.
So My question is how can i get all the set parameter from url in GET
request in django.
Upvotes: 2
Views: 1667
Reputation: 2227
params = {k: request.GET[k] for k in request.GET if request.GET[k]}
Upvotes: 0
Reputation: 4512
Try this:
# values = [request.GET.get(p) for p in ['param1', 'param2', 'param3']]
values = ['val1', 'val2', '']
names = ['p1', 'p2', 'p3']
query = 'www.api-end-point.com?'
for i, value in enumerate([v for v in values if v]):
query += "{}{}={}".format("&" if i else "", names[i], value)
query += '&format=json'
which will yield:
www.api-end-point.com?p1=val1&p2=val2&format=json
Upvotes: 3
Reputation:
You may try:
value1 = request.GET.get('param1') if request.GET.get('param1') else None
Upvotes: 1