Search code examples
djangodjango-admin

Render a select box as radios buttons in Django Admin


I want to show select box options as raido buttons in Django Admin change model view. I don't want to write custom model forms. I'm looking for a way to render some select boxes as radio buttons while keeping auto generated model forms of the Django admin. I'm using django v 1.11.


Solution

  • Assuming my_field is the field, we want to be rendered as Radio Button

    # admin.py
    from django.contrib import admin
    from django import forms
    
    from .models import MyModel
    
    class MyModelAdminForm(forms.ModelForm):
        class Meta:
            model = MyModel
            exclude = ()
            widgets = {'my_field': forms.RadioSelect}
    
    class MyModelAdmin(admin.ModelAdmin):
        form = MyModelAdminForm
    
    admin.site.register(MyModel, MyModelAdmin)