增强django模型以将外部数据合并到查询响应中

时间:2014-07-31 00:16:01

标签: python django django-models

我想为我的模型类创建一个自定义管理器,它仍然返回一个惰性查询集,但在每个对象中包含一些未存储在数据库中的数据。为简单起见,我们说我有类似的东西:

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()的结果作为值的字段。

任何指针?

1 个答案:

答案 0 :(得分:1)

覆盖iterator中的ProxyNodeManager方法。

您可以根据django does it的方式。