Django 可以为现有 table 中的每一行在新的 table 中创建一个默认行吗?
Can Django create a default row in a new table for each row in an existing table?
我有一家公司 table 填充了数据。引入分支 table 的需要出现了。在 Django 中将使用什么机制来使用公司中现有的数据 table 为每个现有的公司条目创建一个基本的分支条目。
“作为迁移的一部分,公司 A 将获得一个默认的 HQ 分支机构。”
有没有办法将一个函数绑定到迁移,或者我是否需要创建一个自定义迁移来在处理 table 创建过程后执行该操作?
models.py
class Company(models.Model):
name = models.CharField(max_length=64)
# This is the new model/table
# Each Company must have at least one branch post migration
class Branch(models.Model):
branch_id = models.IntegerField(
verbose_name="Branch ID",
null=False,
default=1000),
parent_branch = models.ForeignKey('self', on_delete=models.CASCADE, null=True)
company = models.ForeignKey(Company, on_delete=models.CASCADE, blank=False, null=False)
将其作为两个单独的操作执行,我在不更改旧操作的情况下创建新的 table,执行数据迁移,然后部署从中运行的新代码。
我有一家公司 table 填充了数据。引入分支 table 的需要出现了。在 Django 中将使用什么机制来使用公司中现有的数据 table 为每个现有的公司条目创建一个基本的分支条目。
“作为迁移的一部分,公司 A 将获得一个默认的 HQ 分支机构。”
有没有办法将一个函数绑定到迁移,或者我是否需要创建一个自定义迁移来在处理 table 创建过程后执行该操作?
models.py
class Company(models.Model):
name = models.CharField(max_length=64)
# This is the new model/table
# Each Company must have at least one branch post migration
class Branch(models.Model):
branch_id = models.IntegerField(
verbose_name="Branch ID",
null=False,
default=1000),
parent_branch = models.ForeignKey('self', on_delete=models.CASCADE, null=True)
company = models.ForeignKey(Company, on_delete=models.CASCADE, blank=False, null=False)