My bad...twas failiing cuz I didn't spell enctype properly...all good.

On Sep 3, 11:50 am, deecodameeko <deecodame...@gmail.com> wrote:
> Thanks guys,
>
> I switched to using the clean method to check multiple fields however
> the file is always None even if I have browsed and found a file I want
> to upload.
>
> def clean(self):
>
>             cleaned_data = self.cleaned_data
>             store_id = cleaned_data.get('store_id')
>             category_id = cleaned_data.get('category_id')
>             gender = cleaned_data.get('gender')
>             file = cleaned_data.get('file')
>
>             if (store_id != '0' or category_id != '0' or gender !=
> '0') and file is None:
>                 msg = 'You must specify a file to upload'
>                 self._errors['file'] = self.error_class([msg])
>
>             return cleaned_data
>
> On Sep 3, 11:23 am, ringemup <ringe...@gmail.com> wrote:
>
> > Two things going on here:
>
> > 1) Validation that involves checking multiple fields should be done in
> > the form's clean() method rather than its clean_FIELDNAME method.  Not
> > all fields are guaranteed to have been added to cleaned_data until you
> > reach the clean() method.
>
> > 2) Try using self.cleaned_data.get('canvas_height') and
> > self.cleaned_data.get('file') instead of directly referencing the
> > dictionary indices.  get() will return None if the key is not found
> > (or if the value is None), whereas accessing the index will throw a
> > KeyError if the key is not found -- which you then need to catch if
> > you don't want to interrupt script execution.
>
> > On Sep 3, 10:52 am, deecodameeko <deecodame...@gmail.com> wrote:
>
> > > Hi,
>
> > > I have a file in a form. The file is optional but if the file is not
> > > None, then some other form fields are required as well.  For example
> > > the following code checks one of the fields that's required when the
> > > file fields isn't empty:
>
> > > file            = forms.FileField(required=False)
>
> > > def clean_canvas_height(self):
>
> > >             canvas_height = self.cleaned_data['canvas_height']
> > >             file = self.cleaned_data['file']
> > >             if file is not None and canvas_height is None:
> > >                 raise forms.ValidationError('You must specify a canvas
> > > height')
> > >             return canvas_height
>
> > > this produces a KeyError which I'm gathering I can't access the file
> > > info this way. My question is how can I go about writting a custom
> > > validation against a file field.
>
> > > Cheers!
>
> > > D

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to