小编Ash*_*ish的帖子

如何与预取相关和预取聚合

我有两个模型诊所和诊所信用:我想要一个诊所列表和可用余额的总和问题是如果我使用注释,我必须循环使用诊所信用查询集:

class Clinic(models.Model):
    """
    clinic model
    """
    user = models.OneToOneField(User, related_name="clinic", primary_key=True, 
     on_delete=models.CASCADE)

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'clinic'




 class ClinicCredits(models.Model):
 """
  credit details for clinic
 """
    clinic = models.ForeignKey(Clinic, on_delete=models.CASCADE, related_name='c_credits')
    credits = models.FloatField('credits', default=0.0)
    balance = models.FloatField('balance', default=0.0, help_text="balance after deduction of credits")

    def __str__(self):
        return self.clinic.name

    class Meta:
       db_table = 'clinic_credits'
Run Code Online (Sandbox Code Playgroud)

这是我获取诊所的查询:

    clinics = Clinic.objects.filter(practice_id__in=user.dietitian.practiceid).order_by(
        'user__date_joined').prefetch_related(Prefetch('c_credits',ClinicCredits.objects.filter(balance__gt=0),'credit_'))
Run Code Online (Sandbox Code Playgroud)

以及我如何在这种情况下使用聚合,或者是否有其他方法可以使用可用积分来检索诊所列表。

django foreign-keys prefetch django-annotate

2
推荐指数
1
解决办法
127
查看次数

标签 统计

django ×1

django-annotate ×1

foreign-keys ×1

prefetch ×1