2016-10-04 2 views
6

Ich versuche, den HTML5-Farbauswahl in Django Admin-Seite zu implementieren.Wie HTML5 Farbauswahl in Django verwenden Admin

Dies ist mein Modell:

#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 

Und schließlich der Admin: für das Feld

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

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

jedoch der Typ Text noch

#model.py 
... 

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

Hier ist die Form . Wie ändere ich den Typ für das Eingabefeld, um in der Admin-Seite zu färben?

Antwort

12

fand ich die Antwort in der Dokumentation:

Die Extraklasse in forms.py war notwendig, nicht

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

Und im Admin:

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

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