创建自定义字段:如何混合ImageField和ColorField?

2024-04-25 08:36:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个字段来存储有关以下一项或多项的信息:

  • 如果字段引用图片(如模型.ImageField)你知道吗
  • 表示颜色的字符串(,格式为“rgb(245,30,46)”),如果字段引用颜色。你知道吗

详细信息:我需要存储有关背景的信息,可以是图片或颜色。你知道吗

我应该继承你的遗产吗模型.ImageField或来自查菲尔德?如果是前者,那么我如何提供正确的测试,将信息存储到数据库并从数据库中检索信息?你知道吗

如果你有这样的例子,请给我一个链接。你知道吗


Tags: 字符串模型信息数据库链接颜色格式图片
1条回答
网友
1楼 · 发布于 2024-04-25 08:36:03

这些数据类型(从技术上讲是两个字符串)差别太大,无法合理地存储在同一列中。您应该只使用两个字段,一个用于图像,另一个用于颜色,并使这两个字段都是可选的(blank=True)。你知道吗

然后可以重写模型的clean方法以强制其中一个出现:

class MyModel(models.Model):
    ...
    def clean(self):
        if not self.image and not self.color.strip():
            raise ValidationError('You must specify either an image or color')

相关问题 更多 >