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.