在Django中使用Django REST Framework,如何在添加新字段时更新旧对象的最佳方法?

2024-09-27 21:24:46 发布

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

我有一个带有模型的数据库,我正在通过添加一个新字段来更新它。添加字段时,数据库中的所有旧对象都用空字符串值填充该字段。我需要这些字段有值

将来,对象将被强制包含一个指定值或默认值

为旧对象更新此字段的最佳方法是什么

我有几个想法,但我不确定其中一个是否“合适”。同样,这是只需要做一次的事情,因为所有未来的对象都将拥有所有必需的数据

  1. 通过将UpdateModelMixin添加到ViewSet来启用PUT,更新字段,然后禁用PUT(我不希望永久允许PUT)
  2. 创建某种迁移脚本来为我进行更新
  3. 我遗漏了什么

Tags: 数据对象方法字符串模型脚本数据库put
1条回答
网友
1楼 · 发布于 2024-09-27 21:24:46

我可能误解了这个问题,但是当您创建一个新字段时,您可以指定要填充到现有数据库中的默认值,这样您就可以给它任何值:

https://docs.djangoproject.com/en/2.2/ref/models/fields/#default

如果您不能回滚并重新创建字段,我将使用Django shell来完成,因为这是一次性更改,类似于:

ModelName.objects.update(field='newvalue')

这样您就不需要更改配置、代码或其他任何东西

相关问题 更多 >

    热门问题