Skip to content

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')