custom text field widget
utils/custom_text_field_widget.py
from django.forms import Textarea
# class CustomTextFieldWidget(Textarea):
# def __init__(self, *args, **kwargs):
# super().__init__(*args, **kwargs)
# self.attrs.update({'style': 'width: 100%;', 'rows': '10'})
class CustomTextFieldWidget(Textarea):
def __init__(self, *args, **kwargs):
# Default to 10 rows if not provided
rows = kwargs.pop('rows', '10')
super().__init__(*args, **kwargs)
self.attrs.update({'style': 'width: 100%;', 'rows': rows})
# CustomTextFieldWidget(rows='5')
Usage
admin.py
from django.contrib import admin
from django.db import models
from .models import About
from utils.custom_text_field_widget import CustomTextFieldWidget
@admin.register(About)
class AboutAdmin(admin.ModelAdmin):
formfield_overrides = {
models.TextField: { 'widget': CustomTextFieldWidget }
}
list_display = ('title', 'content')