Kun wrote: > [EMAIL PROTECTED] 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 -- http://mail.python.org/mailman/listinfo/python-list