Skip to main content

Command Palette

Search for a command to run...

How to change the input widget into a textfield in Django Model Admin form?

Change the input widget into a textfield in Django Model Admin form

Published
1 min read
How to change the input widget into a textfield in Django Model Admin form?

Note: If you want to read the blog series on Django Admin customization, then click here.

Suppose you have a Book model which has a description field as given below.

# app_name/models.py

class Book(models.Model):
    ...
    description = models.CharField(max_length=150)

As you can see above, you have a models.CharField in a model, and you want to show it as a TextField or you want to add a custom widget such as Rich Text Widget in the admin, here is how you can change the widget type with the help of formfield_overrides.

# app_name/admin.py

from django.contrib import admin
from django.db import models
from app_name.models import Book

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    ...
    formfield_overrides = {
        models.CharField: {
            "widget": models.TextField
        }
    }

Any thoughts? Write it down in the comments.

For more such crispy blogs daily, follow Dev.Junction, subscribe to our newsletter and get notified.

Django admin tips and tricks

Part 5 of 14

Django provides a great Admin panel rich in features and highly customizable, in this series of blogs we will be introduced to all such possible customizations and more.

Up next

How to make fields to be read only fields in the Django model admin forms?

Make fields to be read only fields in the Django model admin forms