Django-CMS FilerImageField: функция проверки
Я пытаюсь написать валидатор для Django-CMS FilerImageField
, Следующая функция валидатора используется по умолчанию ImageField
, Когда я копирую его в новую модель, он вылетает с сообщением 'int' object has no attribute 'file'
, Очевидно, что в функцию валидатора передается значение другого типа. Я не могу найти информацию о том, какие данные передаются в валидатор. Как правильно ссылаться на файл, чтобы я мог get_image_dimensions()
?
def validate(fieldfile_obj):
width, height = get_image_dimensions(fieldfile_obj.file) #crash
if width > 1000:
raise ValidationError("This is wrong!")
1 ответ
Решение
Хорошо, я нашел это. fieldfile_obj
в этом случае содержит первичный ключ записи изображения. Решение было получить экземпляр filer.models.Image
и передать этот экземпляр file
свойство функции валидатора:
from filer.models import Image
# ... code ...
def validate(fieldfile_obj):
image = Image.objects.get(pk=fieldfile_obj)
width, height = get_image_dimensions(image.file)
if width > 1000:
raise ValidationError("This is wrong!")