如何自定义模型的"Clear"复选框。ImageField in django Admin page?



我的django应用程序中有一个用户配置文件的模型,它有一个模型。ImageField和我有一个ModelAdmin当用户上传图像时,在管理页面中,当我进入该用户的自定义页面时,在ImageField部分,有上传图像的url和一个名为"清除"的复选框,以及一个用于更新图像的按钮。如何更改该复选框的文本?例如,我希望它有文本"Delete"而不是"Clear"

"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},
    }

或者使用转换机制将"清除"转换为"删除"。Django的翻译在文档中描述得很好。

我个人认为,除非你无论如何都在使用翻译,否则这对你的问题来说是相当大的开销。我明确建议使用自定义小部件——添加代码非常少。

最新更新