是否可以在Django Admin网站中显示(十六进制颜色)字段的颜色?

问题描述 投票:0回答:1

我在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

这将列出成分并已将其关联一个名称,例如'Dill'或'Tomato'和'hexcolor',例如#C5E1A5或#DD2C00。当前,在管理站点上,我可以看到列为“成分”的名称_EN的成分,并且当我也单击十六进制值(#......)时。但是我想看到name_EN旁边列出的实际颜色,因此我可以看到它(并在需要时进行更改)。它不一定需要颜色选择器,可能很好,但是我首先寻求如何显示颜色(例如hexcolor字段的背景色?)。

任何建议在哪里以及如何执行?将不胜感激。

python django colors hex
1个回答
0
投票

Django3 documentation中所述,您可以通过使用如下的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')
© www.soinside.com 2019 - 2024. All rights reserved.