如何迭代queryset中的值并将它们返回到我的模型中?

2024-04-29 11:36:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的queryset中迭代一个值,但是我不知道从哪里开始

我更详细地解释了这个案子

我的模特

class Tarifa_Sem(models.Model):
    limite_inferior_isr = models.DecimalField(max_digits=10, decimal_places=2)
    limite_superior = models.DecimalField(max_digits=10, decimal_places=2)

class Calculadora_isr(models.Model):
    tarifa = models.ForeignKey(Tarifa_Sem, on_delete=models.CASCADE, null=True, blank=True)
    base_gravada = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
    limite_inf_calculo = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)

还有我的查询集:

def limite_inferior(self):
        qsl1 = Calculadora_isr.objects.values_list('base_gravada')
        qsl2 = Tarifa_Sem.objects.filter(Q(limite_superior__gte=qsl1) & Q(limite_inferior_isr__lte=qsl1)).distinct().values_list('limite_inferior_isr', flat=True)[0]
        return qsl2

def save(self, *args, **kwargs):
        self.limite_inf_calculo = self.limite_inferior()
        super (Calculadora_isr, self).save(*args, **kwargs)

问题是我只得到查询的第一个对象的计算结果

<QuerySet [**(Decimal('10000.00')**,), (Decimal('1200.00'),), (Decimal('7000.00'),),>

Here is a more detailed model of my problem

我需要帮助知道如何通过queryset传递每个值,如果它已经被创建并更新每个记录的信息


Tags: selftruemodelsnullmaxcalculadoradecimalplaces