2016-10-04 14 views
6

Tôi đang cố gắng triển khai trình tạo màu HTML5 trong trang quản trị của Django.Cách sử dụng bộ chọn màu HTML5 trong quản trị Django

Đây là mô hình của tôi:

#model.py 
... 

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

Dưới đây là hình thức:

#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 

Và cuối cùng là quản trị:

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

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

Tuy nhiên, loại cho lĩnh vực này vẫn là văn bản . Làm cách nào để thay đổi loại cho trường nhập thành màu trong trang quản trị?

Trả lời

12

Tôi tìm thấy câu trả lời trong tài liệu:

Lớp bổ sung trong forms.py là không cần thiết

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

Và trong admin:

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

... 
class CategoryAdmin(admin.ModelAdmin): 
    form = CategoryForm 
    filter_horizontal = ('questions',) 
    fieldsets = (
     (None, { 
      'fields': (('name', 'letter'), 'questions', 'color') 
      }), 
     ) 
Các vấn đề liên quan