1
我有一个Django的模型,看起来像这样:Django的自定义管理器添加属性
class MyModel(models.Model):
field1 = models.IntegerField()
field2 = models.IntegerField()
nonDbField = SomeObject()
objects = MyCustomManager()
字段1实际上是一个PK到一个抽象类SomeObject的。
我希望有一个自定义的经理,对于任何的功能(所有,过滤,得到等)返回的每个值执行以下操作:
value.nonDbField = SomeObject.objects.get(pk=value.field1)
我测试过,我可以手动覆盖得到像所以:
class MyCustomManager(models.Manager):
def get(self, *args, **kwargs):
value = super(MyCustomManager, self).get(*args, **kwargs)
value.nonDbField = SomeObject.objects.get(listid=value.itemListID)
return value
但想知道是否有一种更简单的方法来执行所有功能。
会有很多人会说,“你为什么这样做?”。它与遗留的模型继承有关,但仍然是活动的数据库。
太棒了!正是我需要的,谢谢! – Jonathan