У меня есть следующие модели:
class Tarifa_Sem (models.Model):
limit_inferior_isr = models.DecimalField (max_digits = 10, decimal_places = 2)
limit_superior = models.DecimalField (max_digits = 10, decimal_places = 2)
cuota_fija_t = models.DecimalField (max_digits = 10, decimal_places = 2, blank = True)
percentage_over_excess = models.DecimalField (max_digits = 10, decimal_places = 2)
class Calculator_isr (models.Model):
rate = models.ForeignKey (Rate_Sem, on_delete = models.CASCADE, null = True, blank = True, related_name = 'calculators')
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)
percentage_excent_li = models.DecimalField (max_digits = 10, decimal_places = 2, null = True, blank = True)
fixed_ quota = models.DecimalField (max_digits = 10, decimal_places = 2, null = True, blank = True)
Я делаю запрос, повторяя мои значения поля base_gravada.
results = [
Tarifa_Sem.objects.filter (limite_superior__gte = obj.base_gravada)
.values_list ('limite_inferior_isr', 'cuota_fija_t', 'percentage_over_excess')
. First ()
for obj in Calculadora_isr.objects.all ()
]
Этот запрос возвращает этот список:
[(Decimal ('133.22'), Decimal ('2.59'), Decimal ('6.40')),
(Decimal ('8790.96'), Decimal ('1649.34'), Decimal ('30 .00 ')),
(Decimal ( '2765.43'), Decimal ('292.88'), Decimal ('21 .36 ')),
(Decimal (' 8790.96 '), Decimal (' 1649.34 '), Decimal ('30 .00'))]
Чтобы сохранить, используйте метод create ():
for t in results:
... Calculadora_isr.objects.create (limite_inf_calculo = t [0],
percentage_excent_li = t [2], fixed_ quota = t [1]). Save ()
Когда я указываю поле и индекс списка для сохранения, проблема в том, что он не сохраняет их внутриИдентификаторы с начальными значениями base_gravated, если нет, то я создаю новые значения:
+------------------------------------------------------------------------------------+
| Model Calculadora_isr |
+--------------------------------------+----------------------+----------------------+
|id |base_gravada| limite_inf_calculo | fixed_ quota | percentage_excent |
+---+------------+---------------------+ ---------------------+ ---------------------+
|1 | 1000.00 | | | |
+---+------------+---------------------+ ---------------------+ ---------------------+
|2 | 10000.00 | | | |
+---+------------+---------------------+----------------------+ ---------------------+
|3 | 5000.00 | | | |
+---+------------+---------------------+ ---------------------+ ---------------------+
|4 | 10000.00 | | | |
+---+------------+---------------------+ ---------------------+ ---------------------+
|5 | | 133.22 | 2.59 | 6.40 |
+---+------------+---------------------+ ---------------------+ ---------------------+
|6 | | 8790.96 | 1649.34 | 30.00 |
+---+------------+---------------------+----------------------+ ---------------------+
|7 | | 2765.43 | 292.88 | 21.36 |
+---+------------+---------------------+ ---------------------+ ---------------------+
|8 | | 8790.96 | 1649.34 | 30.00 |
+---+------------+---------------------+ ---------------------+ ---------------------+
Мне нужно иметь возможность сохранять значения в моей модели Calculadora_isr, которая выглядит следующим образом:
+------------------------------------------------------------------------------------+
| Model Calculadora_isr |
+--------------------------------------+----------------------+----------------------+
|id |base_gravada| limite_inf_calculo | fixed_ quota | percentage_excent |
+---+------------+---------------------+ ---------------------+ ---------------------+
|1 | 1000.00 | 133.22 | 2.59 | 6.40 |
+---+------------+---------------------+ ---------------------+ ---------------------+
|2 | 10000.00 | 8790.96 | 1649.34 | 30.00 |
+---+------------+---------------------+----------------------+ ---------------------+
|3 | 5000.00 | 2765.43 | 292.88 | 21.36 |
+---+------------+---------------------+ ---------------------+ ---------------------+
|4 | 10000.00 | 8790.96 | 1649.34 | 30.00 |
+---+------------+---------------------+ ---------------------+ ---------------------+
Мне нужна помощь с этим спасибо