【发布时间】:2022-01-18 05:06:14
【问题描述】:
我有一个生产中的表,它集成在系统中的任何地方,现在我需要在表中添加一个具有默认值的新列,但不想更改所有现有逻辑,最好的方法是什么这样做?
class People(models.Model):
name = models.CharField(max_length=20)
gender = models.CharField(max_length=20)
class = models.CharField(max_length=20)
在系统中,我们到处都有这种查询
People.objects.filter(gender='male')
People.objects.filter(gender='female', class="3rd")
...
现在我们需要添加一个新字段:
class People(models.Model):
name = models.CharField(max_length=20)
gender = models.CharField(max_length=20)
class = models.CharField(max_length=20)
graduated = models.BooleanField(default=False)
假设所有现有数据应该有graduated 是False,所以如果我们可以在每个查询上添加graduated=False,那么所有现有逻辑都应该工作,但是有什么方法可以做到我们不需要更改任何现有代码,但他们会假定 graduated=False?
【问题讨论】:
标签: python mysql django database django-models