Python日记| #10。选择颜色:颜色
#spanish #python #开发日志

模型是武装的,因此与管理员一起工作将非常简单。第一步是创建一系列颜色,然后模拟投票。

组装绿色,红色和蓝色:

Django Admin colores

然后定义了投票,每个票都是用户唯一的:

Django Admin votos

,我立刻意识到某些东西被忽略了:颜色模型没有十六进制的价值。因此,如果您将“黑色”颜色放在一起,而不定义“#000”,则无法在屏幕上上色。 ð²

颜色迁移

原则上用空白默认值(#FFF)定义了字段,因为否则先前创建的记录不会具有分配的值。另一个选择是将字段定义为null,但这是没有意义的,因为每种颜色都必须具有十六进制的名称和价值:

hexa = models.CharField(max_length=7, default="#FFF")

另一方面,在 admin.py 中定义了一个类,以组装我想可视化的列,以获取名称和hexa的字段。

class ColorAdmin(admin.ModelAdmin):
    list_display = ('name', 'hexa')


admin.site.register(Vote)
admin.site.register(Color, ColorAdmin)

结果给出:

Django Admin registros

定义HEXA值

我可以打开Photoshop,Paint或AlgíºN在线编辑器,选择一个并复制十六进制价值。但是我很懒惰,所以我决定做一些可以带我更多工作的事情:实施一本彩色小册子。

asã会发现django-colorfield。使用 pip 安装它后,修改我的模型:

from colorfield.fields import ColorField

(...)

hexa = ColorField(max_length=7, default="#FFF")

现在,例如,如果我想创建一种新颜色,我在django-admin中拥有这种美:

Django Admin selector de color

我现在可以在不离开管理员的情况下定义我想要的所有颜色。

在下一集中...

根据定义的颜色,我们可以投票一张。问题在于,API使我们可以向任何用户投票,这是一个巨大的安全差距。