如何在Django中使用HTML5颜色选择器管理

问题描述:

我试图在Django的管理页面中实现HTML5 colorpicker。如何在Django中使用HTML5颜色选择器管理

这里是我的模型:

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

但是,该字段的类型仍然是文本。如何将输入字段的类型更改为管理页面中的颜色?

我找到了文档中的答案:

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