Как переопределить сообщение об ошибке max_length для поля ImageField?
Я использую Django 2.2. У меня есть поле ImageField. Мне нужно переопределить его максимальную длину по умолчанию 100 и переопределить сообщение об ошибке, которое оно генерирует.
Мне кажется, или сообщения об ошибках для всего, что наследуется от FileField, не могут быть переопределены?
class PageTemplate(models.Model)
background_image = models.ImageField(
blank=True,
null=True,
verbose_name='Header Image',
upload_to=page_template_image_path,
max_length=150,
error_messages={'max_length': "This is a test 1"},
validators=(validate_image_file_extension, validate_filename_size),
)
Сообщение об ошибке, которое я получаю, выглядит так Ensure this filename has at most 150 characters (it has 157)
. И прежде чем кто-нибудь спросит, да, я не забыл запустить makemigrations и migrate.
Вот как я смог решить эту проблему. PageTemplateAdmin теперь использует PageTemplateForm, и именно там я смог переопределить сообщение об ошибке.
class PageTemplate(models.Model)
background_image = models.ImageField(
blank=True,
null=True,
verbose_name='Header Image',
upload_to=page_template_image_path,
max_length=150,
validators=[validate_image_file_extension],
)
class PageTemplateForm(forms.ModelForm):
class Meta:
model = PageTemplate
fields = '__all__'
error_messages = {
'background_image': {
'max_length': ('Filename has to be less than 100 characters'),
},
}
class PageTemplateAdmin(admin.ModelAdmin):
form = PageTemplateForm
list_display = [...]