我尝试使用Django-colorfield创建一个下拉菜单,可以从中选择颜色。但是,输出中的优先级部分只显示****。我尝试使用this answer,但它不起作用。Output,代码:<colorfield.fields.ColorField>**.I tried this answer but it didn't work. Output , Code:
#models.py
from django.db import models
from colorfield.fields import ColorField
class Todo(models.Model):
text = models.CharField(max_length=40)
complete = models.BooleanField(default=False)
COLOR_CHOICES = [
("#8b0000", "red"),
("#ffff00", "yellow"),
("#006400","green")
]
priority = ColorField(choices=COLOR_CHOICES)
def __str__(self):
return self.text
#forms.py
from django import forms
from colorfield.fields import ColorField
from .models import Todo
class TodoForm(forms.Form):
text = forms.CharField(max_length=40,
widget=forms.TextInput(
attrs={'class' : 'form-control', 'placeholder' : 'Enter todo here', 'aria-label' : 'Todo', 'aria-describedby' : 'add-btn'}))
COLOR_CHOICES = [
("#8b0000", "red"),
("#ffff00", "yellow"),
("#006400","green")
]
priority = ColorField(choices=COLOR_CHOICES)
4条答案
按热度按时间wz8daaqr1#
如果你想在你的模板中使用django-colorfield的颜色选择器(在Django管理之外),你只需要将字段设置为
CharField
并将ColorWidget小部件传递给它。对于您的情况,这将是这样的:
请注意,您必须使用键
palette
将COLOR_CHOICES
as列表以及属性传递给ColorWidget
,以便获得调色板。eni9jsuy2#
ColorField只能在Django Admin中使用。如果你想在模板中使用颜色选择器,我建议创建CharField,比如:
在模板中添加添加一个JS插件来显示颜色选择器或使用HTML5颜色选择器,例如:
qkf9rpyu3#
颜色=表单。字符字段(最大长度=7,小工具=文本输入(属性={“类型”:“颜色”,}))
这工作形式很好。
v8wbuo2f4#
通过fallowing @Smort解决方案,我发现colorfield默认在前端(模板)工作,我们只需要根据需要将javascript文件转换为模板。
在模型中,我有:
标题颜色=颜色字段(默认值=“#FF0000”)
并且我使用的ModelForm只包含定义的字段,不需要其他任何东西