Как настроить флажок "Очистить" для моделей.ImageField на странице администратора django?

У меня есть модель для профиля пользователя в моем приложении django, у которого есть models.ImageField, и у меня есть ModelAdmin для него, когда пользователь загружает изображение, на странице администратора, когда я захожу на страницу настройки этого пользователя, в разделе ImageField, есть URL загруженного изображения и флажок "Очистить", а также кнопка для обновления изображения. как я могу изменить текст этого флажка? например, я хочу, чтобы он имел текст "Удалить" вместо "Очистить"

1 ответ

Решение

Кажется, что "Clear" - это жесткий код.

Так что либо вы создаете собственный виджет просто так:

class MyClearableFileInput(ClearableFileInput):
    clear_checkbox_label = ugettext_lazy('Delete')

И назначьте его на ваше поле формы, как это

MyForm(forms.Form):
    myfile=ImageField(widget=MyClearableFileInput)

Или добавьте перезаписать его в свой админ

class MyModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.ImageField: {'widget': MyClearableFileInput},
    }

Или вы используете механизмы перевода для перевода Clear в Delete. Перевод Django очень хорошо описан в документации.

Лично я просто думаю, что это довольно сложная задача для вашей проблемы, если вы все равно не используете переводы. Я бы определенно рекомендовал пользовательский виджет - дополнительный код действительно минимален.

Другие вопросы по тегам