使用属性和设置器拆分Django模型

时间:2018-11-22 00:01:36

标签: python django django-models

在试图在已经运行的应用程序中拆分模型时,我使用属性和设置器来防止在代码库中进行数百次更新。

模型设置:

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()

我再次使用属性和设置器,以避免更改旧迁移文件以及代码中查询发生的其他几个地方的查询。

  

问题:

     
      
  1. 以这种方式使用属性/设置器时,在调用模型A属性时会无意中触发大量查询吗?即对此有弊吗?

  2.   
  3. 是否有更好的方法可以做到这一点?

  4.   

使用: Django 1.11

0 个答案:

没有答案