|
Josh Whiting
josh-modpython at valleyfree.com
Fri Nov 26 13:33:48 EST 2004
according to the mod_python documentation section 4.6.1, fieldStorage is
a dictionary-like object in which keys are the form input names and the
values can be:
1. An instance of StringField, containing the form input value. This is
only when there is a single value corresponding to the input name.
StringField is a subclass of str which provides the additional value
attribute for compatibility with standard library cgi module.
2. An instances of a Field class, if the input is a file upload.
3. A list of StringField and/or Field objects. This is when multiple
values exist, such as for a <select> HTML form element.
So how do I tell which one it is? Even if I design my html to work one
way, I can't assume the input request will conform to that. Definately a
noob question but I couldn't find an answer in the python docs, I
assume it is in there somewhere... by trial and error I figured I could
do this:
fields = util.fieldStorage(req)
if str(type(fields['name'])) == "<class 'mod_python.util.StringField'>":
# it's a single string value
# ...
elif str(type(fields['name'])) == "<class 'mod_python.util.Field'>":
# it's a file upload
# ...
else:
# it's a list of stringField objects
# ...
however, this seemed somehow incorrect to compare the output of
str(type(...)) to a known string value... or this is the preferred
method?
thanks!
/josh w
|