我想为我的模型类创建一个自定义管理器,它仍然返回一个惰性查询集,但在每个对象中合并一些未存储在数据库中的数据。为了简单起见,假设我有类似的东西:
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() 作为评估节点时的值。
有什么指点吗?
最佳答案
重写ProxyNodeManager
中的iterator
方法。
您可以根据如何django does it .
关于python - 增强 django 模型以将外部数据合并到查询响应中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25049016/