Ok, Will do my best to explain this but reply if your confused :)
I have written a validator that checks the contents of an uploaded
file. It needs the contents of the file itself and the bind arguments
( kw.get("blah") ) to validate the file.
Problem is that I can only seem to get the contents of the file and I
cant see any way to access the bind arguments.
Here is my code for the validator: (I tacked kw=None onto the
functions arguments to show what I need it to do)
def valid_source_file(node, value, kw=None): # Fix Me
""" checks to make sure uploaded file is a valid zip """
# I cannot find kw anywhere and I need the file object that value returns
# List of files and folders that the zip should contain
req_file_folder = kw.get("req_file_folder")
try:
z = zipfile.ZipFile(value['fp'])
count = 0
namelist = z.namelist()
# Loop through files in required files and folders.
for item in req_file_folder:
# Make sure they are in the zip
if item in namelist:
count += 1
# If they are not all there, then...
if not count == len(req_file_folder):
# Make a list of files and folders for the Invalid exception
filelist = ""
for item in req_file_folder:
filelist += "%s, " % item
filelist = filelist[:-2]
raise Invalid(node,
'The zip must have the following files: %s' % filelist)
except zipfile.BadZipfile:
raise Invalid(node, 'The uploaded file is not a zip.')
Its passing through the file object but I just see no way of getting
the kw / bind arguments.
Sorry if its a little ugly, I plan on cleaning up later :)
--
Thanks, Richie Ward
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/pylons-discuss?hl=en.