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

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

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.