首页 > 解决方案 > 在调用方法期间接收 DeferredAttribute 而不是值

问题描述

我正在尝试调用该方法,如下所示:

def get_tenant_model():
    return get_model(settings.TENANT_MODEL)

设置中的租户模型:

TENANT_MODEL = "app.Client"

在这个地方:

    a = get_tenant_model()
    print(a.name)

我得到:

<django.db.models.query_utils.DeferredAttribute object at 0x7f0cf7d746a0>

为什么我不能得到客户的名字?

标签: pythondjangodatabasemulti-tenant

解决方案


a.name指特定模型实例的名称。即某个特定客户的名字可能是“Bob Smith”。

但是您不是在寻找特定客户的名称;你想要模型本身的类名。

改为使用a.__name__


推荐阅读