models.py
amis Bonne nuit, je voudrais savoir s'il est possible que chaque fois que j'enregistrer un nouveau mouvement, l'administrateur django vérifie ce qui est un « Hydrographique region 'et ajoute la valeur qui est entrée avec la' balance_box '.comment mettre à jour un autre champ admin django
class Movement(models.Model):
TYPE_MOVE = (
('1', 'Receita'),
('2', 'Despesa'),
)
regiao_hidrografica = models.ForeignKey(RegiaoHidrografica, verbose_name="Região Hidrografica", null=False)
origem = models.ForeignKey(Origem, verbose_name="Origem", null=False)
finalidade_recurso = models.ForeignKey(FinalidadeRecursos, verbose_name="Finalidade de Recursos", null=True)
descricao = models.TextField("Descrição", null=True)
valor = MoneyField(max_digits=10, decimal_places=2, default_currency='BRL')
data_refencia = MonthField("Data de Referencia", help_text="Informe mês e ano")
# data_refencia = models.DateField("Data de Referencia", null=True, blank=True, default=None)
tipo_movimento = models.CharField(max_length=1, default=1, choices=TYPE_MOVE)
def __str__(self):
return self.descricao
def update_total_valor(self):
total = 0
self.movimento_set:
total += mov.valor
self.saldo_caixa = total
self.save()
class RegiaoHidrografica(models.Model):
name = models.CharField("Nome", max_length=100, null=False)
sigla = models.CharField("Sigla", max_length=10, null=True)
taxa_inea = models.IntegerField(default=10, null=True)
taxa_trans = models.IntegerField(default=0, null=True)
saldo_caixa = MoneyField('Saldo em caixa estimado', max_digits=10, decimal_places=2, null=True, default=0, default_currency='BRL')
saldo_cc = MoneyField('Saldo em conta estimado', max_digits=10, decimal_places=2, null=True, default=0, default_currency='BRL')
def __str__(self):
return self.name
J'ai essayé quelque chose comme cela, créez cette méthode dans le « MovimentoAdmin de classe (admin.ModelAdmin) », mais cela n'a pas fonctionné.
admin.py
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
instance.save()
formset.save_m2m()
instance.RegiaoHidrografica.update_total_valor()
Est-ce que quelqu'un a une astuce comment je pourrais le faire?