在Django Admin中,"Add another SomeObject"按钮用于在内联表单中添加新的SomeObject对象。要更改该按钮上的文本,可以通过自定义InlineModelAdmin类来实现。
首先,创建一个新的InlineModelAdmin类,继承自django.contrib.admin.options.InlineModelAdmin。然后,在该类中重写get_formset
方法,该方法返回用于渲染内联表单集的FormSet类。在重写的方法中,可以通过设置formset.form.base_fields
属性来更改按钮上的文本。
下面是一个示例代码:
from django.contrib import admin
from django.contrib.admin.options import InlineModelAdmin
from myapp.models import ParentModel, SomeObject
class CustomInlineModelAdmin(InlineModelAdmin):
def get_formset(self, request, obj=None, **kwargs):
formset = super().get_formset(request, obj, **kwargs)
formset.form.base_fields['add_another'] = 'Custom Text'
return formset
class SomeObjectInline(admin.TabularInline):
model = SomeObject
extra = 1
verbose_name_plural = 'Some Objects'
class ParentModelAdmin(admin.ModelAdmin):
inlines = [SomeObjectInline]
admin.site.register(ParentModel, ParentModelAdmin)
在上述示例中,我们创建了一个名为CustomInlineModelAdmin
的自定义内联模型管理类,并重写了get_formset
方法。在该方法中,我们将formset.form.base_fields['add_another']
设置为我们想要显示的自定义文本。
然后,我们创建了一个名为SomeObjectInline
的内联模型类,将其添加到ParentModelAdmin
的inlines
属性中。最后,我们通过调用admin.site.register
将ParentModel
和ParentModelAdmin
注册到Django Admin中。
这样,当在Django Admin中显示ParentModel
对象的表单时,"Add another SomeObject"按钮上的文本将被替换为"Custom Text"。
请注意,以上示例中的代码是基于Django 3.x版本编写的。如果使用的是其他版本,请根据具体版本进行适当的调整。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云