2016-10-04 1 views
6

Я пытаюсь реализовать цветной указатель HTML5 на странице администрирования Django.Как использовать подборку HTML5 в Django admin

Вот моя модель:

#model.py 
... 

class Category(models.Model): 
    ... 
    color = models.CharField(max_length=7) 

Вот форма:

#form.py 
from django.forms import ModelForm 
from django.forms.widgets import TextInput 
from .models import Category 

class CategoryForm(ModelForm): 
    class Meta: 
     model = Category 
     fields = '__all__' 
     widgets = { 
      'color': TextInput(attrs={'type': 'color'}), 
     } 

class CategoryAdminForm(ModelForm): 
    form = CategoryForm 

И, наконец, админ:

#admin.py 
... 
from .forms import CategoryAdminForm 

... 
class CategoryAdmin(admin.ModelAdmin): 
    form_class = CategoryAdminForm 
    filter_horizontal = ('questions',) 
    fieldsets = (
     (None, { 
      'fields': (('name', 'letter'), 'questions', 'color') 
      }), 
     ) 

Однако тип для поля по-прежнему текст , Как изменить тип поля ввода для цвета на странице администратора?

ответ

12

Я нашел ответ в документации:

Дополнительный класс в forms.py не было необходимости

#form.py 
from django.forms import ModelForm 
from django.forms.widgets import TextInput 
from .models import Category 

class CategoryForm(ModelForm): 
    class Meta: 
     model = Category 
     fields = '__all__' 
     widgets = { 
      'color': TextInput(attrs={'type': 'color'}), 
     } 

И в админке:

#admin.py 
... 
from .forms import CategoryForm 

... 
class CategoryAdmin(admin.ModelAdmin): 
    form = CategoryForm 
    filter_horizontal = ('questions',) 
    fieldsets = (
     (None, { 
      'fields': (('name', 'letter'), 'questions', 'color') 
      }), 
     ) 
Смежные вопросы