Django - ChoiceField - Option Buttons instead of S

2019-03-16 17:02发布

Is it possible to display the option buttons instead of select box (in the admin interface) for ChoiceField? Any suggestions?

3条回答
欢心
2楼-- · 2019-03-16 17:10

There's a snippet on djangosnippets that seems to do something like this for forms given a list of choices, but it doesn't seem to specifically do it for the admin app. You might be able to either leverage this or the ideas within it to get you the rest of the way though.

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-03-16 17:13

Yes.

In your admin.py create a ModelAdmin class:

from django.contrib import admin
from django.forms.widgets import RadioSelect ## originally had mistake of django.forms.extras.widgets

class SomeModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
         models.ChoiceField : dict(widget = RadioSelect) 
     }

admin.site.register(SomeModel, SomeModelAdmin)

I'm not sure what you mean by "option buttons" rather than select box, but this is how you change it. You can find the right widget here: http://docs.djangoproject.com/en/dev/ref/forms/widgets/

查看更多
戒情不戒烟
4楼-- · 2019-03-16 17:26

The following ModelAdmin subclass (in your admin.py) does what you're after:

class PersonAdmin(admin.ModelAdmin):
    radio_fields = {"group": admin.VERTICAL}

HORIZONTAL is also possible.

From the Django docs.

查看更多
登录 后发表回答