我试图从模型访问缓存的属性并返回'tuple' object has no attribute 'client'
这是具有cached_属性的模型
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_属性的地方。得到错误。
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)