python - AttributeError:“元组”对象没有属性“客户端”
问题描述
我试图从模型访问 cached_property 并返回
'tuple' object has no attribute 'client'
这是具有 cached_property 的模型
class Creds(models.Model):
tenant = models.OneToOneField('tenant.Tenant', unique=True, on_delete=models.CASCADE)
@cached_property
def client(self):
from pos.api_client import APIClient
return APIClient(self)
这是我试图访问cached_property的地方。并得到错误。
class createCred(APIView):
def get(self, request, *args, **kwargs):
tenant = get_object_or_404(Tenant, pk=request['tenant_id'])
square_credential = SquareCredential.objects.get_or_create(tenant=tenant)
client = square_credential.client
解决方案
检查文档以获取get_or_create
.
返回 (object, created) 的元组,其中 object 是检索或创建的对象, created 是指定是否创建新对象的布尔值。
所以你需要类似的东西:
square_credential, created = SquareCredential.objects.get_or_create(tenant=tenant)
client = square_credential.client
如果您不关心它是否已创建,您可以使用下划线作为“一次性变量”约定:
square_credential, _ = SquareCredential.objects.get_or_create(tenant=tenant)
推荐阅读
- excel - 用于 3 列查找的 Excel 索引公式
- java - Android Studio 中的 webview 出现错误““网页无法加载,因为 net::ERR_ACCESS_DENIED”
- tensorflow - 使用 torch.utils.tensorboard 看不到图表
- python - 关于使用 python 进行并行处理的建议
- mobile - setState() 回调参数返回了一个未来颤振
- javascript - 如何修复无法在 JavaScript 中读取 null 的属性“样式”?
- php - 如何通过 PHP 禁用输入
- python - P4Python:AttributeError:类型对象'P4'没有属性'Map'
- java - 实例化fabric-samples的java链码时出错
- python - Django:如何将图像存储在数据库而不是媒体文件中?