2016-10-04 14 views
6

Próbuję zaimplementować kolorowanie HTML5 na stronie administratora Django.Jak korzystać z selektora kolorów HTML5 w administratorze Django

Oto mój model:

#model.py 
... 

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

Oto forma:

#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 

I wreszcie admin:

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

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

jednak typem na polu jest jeszcze tekst . Jak zmienić typ pola wejściowego na kolor na stronie administratora?

Odpowiedz

12

Znalazłem odpowiedź w dokumentacji:

Dodatkowa klasa w forms.py nie było konieczne

#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'}), 
     } 

A w admin:

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

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