Django:如何更新以前创建的数据库条目?

2024-06-26 14:58:10 发布

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

我有一堆以前创建的数据库条目,是我创建的一个模型类,叫做Equations。我创建了一种新类型的模型EquationGroup,我希望能够将数据库中现有的等式链接到新创建的EquationGroup。我该怎么做?你知道吗

更新: 我忘了提一下,我在方程组和方程组之间有一个外键关系。 这是我的简短版本型号.py你知道吗

class EquationGroup(models.Model):

    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name

class Equation(models.Model):

    name = models.CharField(max_length=50, null=False, blank=False)
    group = models.ForeignKey(EquationGroup)

Tags: name模型self数据库falsemodelmodels条目
3条回答

您可以创建一个脚本,遍历所有表达式并将它们附加到表达式组。使用公式.对象.全部()您可以得到所有equations对象的iterable。 然后可以在for循环中遍历,并将每个表达式指定给指定的“表达式”组。你知道吗

示例:

for equation in Using Equations.objects.all():
    equation.equationGroup = some_group  #based on however you specify what goes in a group.
    equation.save()

您计划如何使用对equation模型的新更改来更新数据库?如果您使用的是django1.7+,那么可以使用内置的migrations。如果不是的话,你将需要寻找类似South的东西。第三,你可以手工修改数据库。你知道吗

不管怎样,我之所以提出迁移是因为不能添加空外键字段。将字段添加到数据库表时,需要指定默认的FK值,您可以使用@user3154952建议返回并更新该值。你知道吗

根据所使用的数据库,可以临时删除外键约束检查。允许您通过允许null将新字段添加到表中而不使用伪值。你知道吗

是否要关联Equation<;->;EquationGroup?如果是这样,您应该添加OneToOne关系字段。Look here作为示例。你知道吗

还有很多其他的方法来添加关系,比如ManyToMany和ForeighKey。你知道吗

是否需要关联实例?这样,您应该有数据来查找相关数据并将其保存为OneToOne/ForeignKey。你知道吗

相关问题 更多 >