Tho*_*ans 3 python django hex colors
我在 Django 3 中有一个模型:
class Ingredient(models.Model):
name_EN = models.CharField(max_length=100, unique=True, null=True)
hexcolor = models.CharField(max_length=7, default="#ffffff")
def __str__(self):
return self.name_EN
Run Code Online (Sandbox Code Playgroud)
这列出了成分并关联了一个名称,例如“莳萝”或“番茄”,以及一个“十六进制颜色”,例如#C5E1A5 或#DD2C00。目前,从管理站点,我可以看到列为成分 name_EN 的成分,当我点击时还可以看到十六进制颜色值(#......)。但我希望看到 name_EN 旁边列出的实际颜色,这样我就可以看到它(并在需要时更改)。它不一定需要颜色选择器,可能很好,但我首先寻求如何显示颜色(例如,十六进制颜色字段的背景颜色?)。
有什么建议吗?在哪里以及如何执行此操作?将不胜感激。
正如Django3 文档中所述,您可以使用如下方法来完成此操作colored_name
:
from django.contrib import admin
from django.db import models
from django.utils.html import format_html
class Ingredient(models.Model):
name_EN = models.CharField(max_length=100, unique=True, null=True)
hexcolor = models.CharField(max_length=7, default="#ffffff")
def colored_name(self):
return format_html(
'<span style="color: #{};">{}</span>',
self.hexcolor,
)
class IngredientAdmin(admin.ModelAdmin):
list_display = ('name_EN', 'hexcolor', 'colored_name')
Run Code Online (Sandbox Code Playgroud)