im试图从模型中访问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
答案 0 :(得分:4)
检查文档中的get_or_create
。
返回(对象,已创建)的元组,其中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)