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

标签 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() 作为评估节点时的值。

有什么指点吗?

最佳答案

重写ProxyNodeManager中的iterator方法。

您可以根据如何django does it .

关于python - 增强 django 模型以将外部数据合并到查询响应中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25049016/

相关文章:

python - Django ORM 和 Unicode 数据

python - Django CharField 空白与默认为空

python - 在 PIL 中打开图像文件时出错

python - Bash 与 Python 中视觉相似字符串的 SHA256 有所不同

python - 使用 Docker 部署 flask 应用程序失败,出现 "context.load_cert_chain(' cert.pem' ,'key.pem' ) FileNotFoundError : [Errno 2]"

python - 如何在 Django 管理中预填充 UserProfile 字段?

python - Django:Cookie 设置为 30 秒后过期实际上是 30 分钟后过期?

python - 在 Django 上从 django.contrib.auth.User 设置非必填字段

python - Python Django ValueError的int()无效文字,基数为10:“telba.de_001”

javascript - 如何使用 Plotly 制作带 slider 的等值线图?