2016-10-04 73 views
6

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

但是,該字段的類型仍然是文本。如何將輸入字段的類型更改爲管理頁面中的顏色?

回答

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