Hi Paul,

You should return value from 'clean_document'.
>From your code I see you do not do that. When method returns nothing it is
None.
That is why you see 'This field cannot be blank.'

I hope that make sense.

Regards,
Constantine C.

On Fri, Sep 29, 2017 at 7:01 AM, Paul <[email protected]> wrote:

> I want to do file validation(size,type) on a field on inlineformset.
>
>
> class ProductDocumentModelForm(ModelForm):
>
>   class Meta: model = ProductDocument
>    fields = ['document']
>
>   def clean_document(self):
>    file = self.cleaned_data['document']
>    validate_file(file, 'document')
>
>
>
> Because I want to use the same validation in multiple application I
> created a separate function.
>
>
> def validate_file(file, for_model, max_size=5000):
>  if for_model == 'document':
>   max_size = FILE_MAX_DOC_SIZE
>
>  if file.size > max_size:
>   raise ValidationError('Please keep file size under {}. Current file size is 
> {}' .format(filesizeformat(FILE_MAX_DOC_SIZE), filesizeformat(file.size)))
>
>
>
> The file size validation works as intended but introduce a strange
> behavior.
>
>
> If this validation is in place and is passed the "This field cannot be
> blank." default validation is triggered even if the fields are not empty.
>
>
> Without the file size validation in place there are no issue even if the
> fields are empty.
>
>
> I don't understand what is the cause.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/a470e4e3-3cb9-489e-930c-8adc6b6210c3%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/a470e4e3-3cb9-489e-930c-8adc6b6210c3%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Sincerely yours,
Constantine C

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAK52boWRk%3DScciWGskkmg%2BuWOMzPrtxzBccu2ZyHxrGKKn5ioA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to