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

新手上路,请多包涵

我正在尝试在 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')
            }),
        )

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

原文由 shefHauwanga 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 418
1 个回答

我在文档中找到了答案:

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

原文由 shefHauwanga 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题