test if GET is "empty"

閲覧: 150 回
最初の未読メッセージにスキップ

Salvatore Leone

未読、
2009/07/29 5:53:052009/07/29
To: django...@googlegroups.com
Hello,

I need to test if the request.GET is empty or if it holds some variable.
So if is empty I can redirect to a page, and if there is some variable
(like user_id='2') I can process the request and do something with
theese variables.


Is there any way or do I have to test for every single variable?

You know, it's boring to write "if request.GET['var1'] and
request.GET['var2'] and ..."

Regards,
Salvatore

Salvatore Leone

未読、
2009/07/29 6:06:532009/07/29
To: django...@googlegroups.com
I answer my self:

all I need is to test the length of the dictionary.

if request.method == "GET" and len(request.GET) != 0:
#do stuff

Eric Abrahamsen

未読、
2009/07/29 6:14:452009/07/29
To: django...@googlegroups.com

On Jul 29, 2009, at 6:06 PM, Salvatore Leone wrote:

>
> I answer my self:
>
> all I need is to test the length of the dictionary.
>
> if request.method == "GET" and len(request.GET) != 0:

Given the way boolean tests go in Python, you should just be able to
test for the dictionary itself:

if request.GET:
XXXX
else:
XXXX

E

Salvatore Leone

未読、
2009/07/29 9:57:362009/07/29
To: django...@googlegroups.com

> Given the way boolean tests go in Python, you should just be able to
> test for the dictionary itself:
>
> if request.GET:
> XXXX
> else:
> XXXX
>
> E
>

mmm I don't think so, I think request.GET is true even if the dictionary
is empty, isn't it?

so the test will allways return true for a GET request.

-Salvatore


Luke Seelenbinder

未読、
2009/07/29 10:27:162009/07/29
To: django...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

There is a more "pythonic" way to test, use request.GET.get(<GET_name>,
False)

e.g.:
if request.GET.get('q', False):
etc.

That tests the dict for the key 'q' if it's not there, it returns false.

Luke Seelenbinder

luke.see...@gmail.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkpwXD4ACgkQXQrGVCncjPxcJwCgsLS2/6YwW64288KRzdUW0Bub
FtsAn3kAW7kb01zMPkVvaEjLLZl5/InB
=3IX4
-----END PGP SIGNATURE-----

Eric Abrahamsen

未読、
2009/07/29 21:47:082009/07/29
To: django...@googlegroups.com

On Jul 29, 2009, at 9:57 PM, Salvatore Leone wrote:

>
>
>> Given the way boolean tests go in Python, you should just be able to
>> test for the dictionary itself:
>>
>> if request.GET:
>> XXXX
>> else:
>> XXXX
>>
>> E
>>
>
> mmm I don't think so, I think request.GET is true even if the
> dictionary
> is empty, isn't it?

No, I just tried it out to make sure, and it does work, though Luke's
solution is more robust and accurate.

E
全員に返信
投稿者に返信
転送
新着メール 0 件