1

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

4

1 回答 1

3

似乎“清除”是硬编码。

因此,您可以像这样创建一个自定义小部件:

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 翻译。

我个人认为这对您的问题来说是相当多的开销,除非您无论如何都在使用翻译。我会明确推荐自定义小部件 - 附加代码非常少。

于 2012-08-22T07:52:23.530 回答