在试图在已经运行的应用程序中拆分模型时,我使用属性和设置器来防止在代码库中进行数百次更新。
class A(models.Model):
name = models.CharField()
type = models.CharField()
spec = models.SmallIntergerField()
@property
def salary(self):
self.b.salary
@salary.setter
def salary(self, value):
self.b.salary = value
self.b.save()
class B(models.Model):
a = models.OneToOneField(A)
salary = model.IntergerField()
height = model.IntergerField()
model_a = A(salary=129980, height=6.00, type="several types")
model_a.save()
我再次使用属性和设置器,以避免更改旧迁移文件以及代码中查询发生的其他几个地方的查询。
问题:
以这种方式使用属性/设置器时,在调用模型A属性时会无意中触发大量查询吗?即对此有弊吗?
是否有更好的方法可以做到这一点?
使用: Django 1.11