django模型具有唯一随机默认值的迁移问题

普拉萨纳

我想在我现有的模型中添加一个新字段,称为color我希望它是唯一的,并且还希望它是默认情况下随机选择的。所以我要做的是:

color = models.CharField(max_length=15, default=random_color, unique=True)

random_color看起来像这样

def random_color():
"""
Returns:
    [string] : returns a rgb value in hex string
"""
while True:
    generated_color = f'#{random_hex()}{random_hex()}{random_hex()}'
    if not MyModel.objects.filter(color=generated_color):
        return generated_color

我遵循了与此处提供的类似的逻辑

现在,这种方法的问题在于,没有什么color可以寻找的。

我还希望我的迁移可以将一堆默认的随机颜色值添加到我现有的表中。

我该如何解决?

冲床儿童

可能有一种更简单的方法可以完成此操作,但是这些步骤应该有效:

  1. 添加color带有null=True和不带有默认值以及的字段unique=True
  2. makemigrations为您的应用程序运行
  3. 运行makemigrations --empty以为您的应用创建自定义迁移。使用添加RunPython操作random_color()以填充新列。
  4. 更改color字段以添加默认的唯一约束,然后删除null=True
  5. makemigrations再次运行

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django唯一随机数作为默认值

来自分类Dev

Django唯一随机数作为默认值

来自分类Dev

如何在Jmeter的HTTP请求默认值中添加具有唯一随机值的密钥

来自分类Dev

Laravel迁移:添加一个具有默认值的现有列的列

来自分类Dev

Laravel迁移:添加一个具有默认值的现有列的列

来自分类Dev

Django在具有数据的模型之间迁移唯一字段

来自分类Dev

具有默认值的Laravel模型方法

来自分类Dev

迁移中的Django datetime默认值

来自分类Dev

EF-具有自动迁移功能的新列的默认值

来自分类Dev

蒙古式采摘-在模型中不返回具有默认值的正确值

来自分类Dev

具有默认值的Javascript对象

来自分类Dev

Protobuf:具有默认值的枚举

来自分类Dev

添加具有默认值的列

来自分类Dev

具有默认值的常规解析

来自分类Dev

用作具有默认值的参数

来自分类Dev

创建具有默认值的表

来自分类Dev

Protobuf:具有默认值的枚举

来自分类Dev

具有默认值的Javascript对象

来自分类Dev

具有默认值的快速协议

来自分类Dev

如何处理Django模型中没有默认值的必需值

来自分类Dev

在迁移Django / South上设置默认值?

来自分类Dev

在 Django 中迁移后更改字段的默认值

来自分类Dev

使用模型方法作为Django模型的默认值?

来自分类Dev

Laravel迁移默认值

来自分类Dev

有没有办法在django模型的CharField中设置默认值?

来自分类Dev

具有唯一值的SQL Select查询问题

来自分类Dev

为现有的mysql表分配唯一的默认值

来自分类Dev

如何在具有继承模型的django迁移中使用默认管理器?

来自分类Dev

Django管理表单和带有默认值的内联模型