我想为我的模型类创建一个自定义管理器,它仍然返回一个惰性查询集,但在每个对象中包含一些未存储在数据库中的数据。为简单起见,我们说我有类似的东西:
class ProxyNodeManager(models.Manager):
def _get_extra_data(self):
# this would be something like a 3rd party API call
return "abcdef"
class Node(models.Model):
name = models.CharField(max_length=32)
desc = models.CharField(max_length=255)
class ProxyNode(Node):
objects = ProxyNodeManager()
class Meta:
proxy = True
对Node.objects.all()的调用将返回带有name和desc字段的QuerySet,但是对ProxyNode.all()的调用将返回一个QuerySet,该QuerySet填充了一个额外的'在评估节点时将ProxyNodeManager._get_extra_data()的结果作为值的字段。
任何指针?