繁体   English   中英

使用外键 django 执行查询

[英]Perform query with foreignkey django

我是 django 的新手,我有这两个 django 型号。 现在我正在尝试查询第二个模型(GenerateKeys)中的条带,它有条带作为外键,我这样做的方式是这样的“

条纹.stripe_customer.all()

“所以我可以从 Stripe model 中的每个用户那里获取个人数据,并在 Generateakeys model 中使用它。但我一直在下面收到此错误

AttributeError: 'QuerySet' object 没有属性 'stripe_customer'

class Stripe(models.Model):
      user = models.OneToOneField(to=User, on_delete=models.CASCADE)
      CustomerId = models.CharField(max_length=255)

class GenerateKeys(models.Model):
    stripe = models.ForeignKey(Stripe,on_delete=models.CASCADE,related_name='stripe_customer')
    key_sha = models.CharField(max_length=255)

谢谢。

您收到属性错误是因为您尝试从查询集中访问实例变量。

首先,获取您的实例,为了举例,我将保持简单。

您可能想使用一些参数来获取您的实例。

instance = stripe.first() # Get the first item in the queryset
customers = instance.stripe_customer.all()

如果要获取每个model 的个别数据; 遍历查询集。

如果GenerateKeys model 已经有一个实例,您可以使用注释来获取每个客户所需的数据。

例子:

qs_annotated = GenerateKeys.objects.all()\
    .annotate(non_existant_field=models.F('stripe__user__username'))

然后你可以像这样访问它:

for inst in qs_annotated:
    print(inst.non_existant_field)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM