multiple parameters in if statement...
Peter Otten
__peter__ at web.de
Sun Apr 16 04:53:09 EDT 2006
Kun wrote:
> mensanator at aol.com wrote:
>> Kun wrote:
>>> I am trying to make an if-statement that will not do anything and print
>>> 'nothing entered' if there is nothing entered in a form. I have the
>>> following code that does that, however, now even if I enter something
>>
>> Yes, but did you enter everything?
>>
>>> into the form, the code still outputs 'nothing entered'.
>>
>> The logic doesn't imply "nothing", it implies "not everything".
>> The else clause will execute if ANY item is not enetered.
>>
>>> This violates
>>> the if statement and I am wondering what I did wrong.
>>>
>>> if form.has_key("delete_id") and form["delete_id"].value != "" and
>>> form.has_key("delete_date") and form["delete_date"].value != "" and
>>> form.has_key("delete_purchasetype") and
>>> form["delete_purchasetype"].value != "" and form.has_key("delete_price")
>>> and form["delete_price"].value != "" and form.has_key("delete_comment")
>>> and form["delete_comment"].value != "":
>>> delete_id=form['delete_id'].value
>>> delete_date=form['delete_date'].value
>>> delete_purchasetype=form['delete_purchasetype'].value
>>> delete_price=form['delete_price'].value
>>> delete_comment=form['delete_comment'].value
>>> else:
>>> print "ERROR: Nothing entered!"
>>> raise Exception
>>
> How do I make this so that it only prints 'nothing entered' when none of
> the fields are entered?
def has_data(form, fields):
for field in fields:
if form.has_key(field) and form[field] != "":
return True
return False
fields = ["delete_id", "delete_date", "delete_purchasetype", "delete_price",
"delete_comment"]
if not has_data(form, fields):
print "nothing entered"
Just testing for
if field in form: ...
instead of
if form.has_key(field) and form[field] != "": ...
is probably sufficient if form is a cgi.FieldStorage.
Peter
More information about the Python-list
mailing list