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