Как изменить внешний вид TextField в админке Django?

Я хочу увеличить размер текстовой области в форме администратора django.

html_content = models.TextField()

Используйте атрибут formfield_overrides в классе ModelAdmin, чтобы указать виджет для всех экземпляров TextField. Например,

class HtmlModuleAdmin(admin.ModelAdmin):
    list_display = ('description', 'enabled')
    formfield_overrides = {
        models.TextField: {'widget': forms.Textarea(attrs={'rows': 50, 'cols': 150})},
    }

admin.site.register(HtmlModule, HtmlModuleAdmin)

Однако это повлияет на все вводы TextField для этой конкретной модели в админке.

Вы можете вставить это в ModelForm и затем использовать эту форму в админке, например:

class HtmlModuleForm(forms.ModelForm):
    class Meta:
        model = HtmlModule
        fields = '__all__'
        widgets = {
            'html_content': forms.Textarea(attrs={'rows': 50, 'cols': 150})
        }

и подключите это к ModelAdmin:

class HtmlModuleAdmin(admin.ModelAdmin):
    form = HtmlModuleForm


admin.site.register(HtmlModule, HtmlModuleAdmin)
Вернуться на верх