Magnotta
Magnotta

Reputation: 941

how to skip empty get parameter in django

I have URL like www.example.com/search?param1=abc&param2=xyz&param3=, 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

Answers (3)

gzerone
gzerone

Reputation: 2227

params = {k: request.GET[k] for k in request.GET if request.GET[k]}

Upvotes: 0

Siegmeyer
Siegmeyer

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

user8060120
user8060120

Reputation:

You may try:

value1 = request.GET.get('param1') if request.GET.get('param1') else None

Upvotes: 1

Related Questions