Calculate values between two models in django

class Material(models.Model):

	('Escolha o seu  projecto', 'Escolha o seu  projecto'),
	('Piscinas', 'Piscina'),
	('Sala', 'Sala'),
	('Quarto de visitas','Quarto de visitas'),
	('Meu Quarto','Meu Quarto'),
	('Quarto filhos','Quarto Filhos'),
	('WC Meu Quarto','WC Meu Quarto' ),
	('WC visitas','WC visitas' ),
	( 'Jango','Jango'),
	('Outro', 'Outro , especifique em nota'),


		('Escolha a unidade', 'Escolha a unidade'),
		('Tonelada', 'T(s)'),
		('Sacos', 'Saco(s)'),
		('Unidade', 'Unidade(s)'),
		('Quilograma', 'Kg(s)'),
		('Litro', 'L(s)'),
		('unidade', 'Unid(s)'),


	('Escolha ', 'Escolha'),
	('Cimento', 'Cimento'),
	('Bloco 12', 'Bloco 12'),
	('Tijolo', 'Tijolo'),
	('Areia', 'Areia'),
	('Burgau', 'Burgau'),
	('Pilares feitos de 12', 'Pilares feitos de 12'),
	('Ferro 12','Ferro 12'),
	('Tribo 20/50','Tribo 20/50'),
	('Tribo 20/30','Tribo 20/30'),
	('Tribo 12/12','Tribo 12/12'),
	('Tribo Triangular', 'Tribo Triangular'),
	('Cisterna de Água', 'Cisterna de Água'),
	('Malha Sol', 'Malha Sol'),
	('Ripas de Madeira', 'Ripas de Madeira'),
	('Madeira', 'Madeira'),
	('Arame', 'Arame'),
	('Pregos', 'Pregos'),
	('Outro', 'Outro (Especificar em nota)'),
	('Alimentação', 'Alimentação'),
	('Mão de Obra', 'Mão de Obra'),


Descricao = models.CharField(max_length=100, blank=False, choices=MATERIAL_CHOICES, default="", verbose_name="Descrição")
nota = models.CharField(max_length=100, blank=True, verbose_name="Notas / Obs")
Unidade = models.CharField(max_length=20, choices=UNIDADE_CHOICES, default="")
Quantidade = models.IntegerField(blank=False)
Preco = MoneyField(max_digits=19, decimal_places=2, verbose_name="Preço")
Data = models.DateTimeField(blank=True, verbose_name="Data")
Fornecedor = models.CharField(max_length=40, blank=True)
Projecto = models.CharField(max_length=30, choices=PROJECTO_CHOICES, default="")

def Preco_total(self):
	Preco_total = 0 
	Preco_total = self.Quantidade * self.Preco
	return Preco_total

def __str__(self):
	return self.Descricao

class deposito(models.Model):
(‘TRANSFERÊNCIA’,'Transferência '),
(‘DEPOSITO’, ‘Deposito’),
(‘EM MÃO’, ‘Dinheiro em mão’),

	metodo = models.CharField(max_length=50, blank=False, choices=METODO_DE_PAGAMENTO, verbose_name="Método de Pagamento")
	valor = MoneyField(max_digits=19, decimal_places=2, verbose_name="Valor investido")
	debito = models.DecimalField(max_digits=19, decimal_places=2, blank=True, default=0, verbose_name="Emprestimo")
	conta = models.CharField(max_length=30, blank=True, verbose_name="Conta / Iban")
	nome = models.CharField(max_length=50, blank=False, verbose_name="Nome do receptor")
	data = models.DateTimeField(blank=True, verbose_name="Data de Pagamento")
	anexo_recibo = models.FileField(blank=True, verbose_name="Comprovativo de Pagamento")

	def __str__(self):
		return self.metodo

	def visualizar(self):
		return self.anexo_recibo

and you need to subtract the value value by Preco_total

I think one option, it’s that you can create a relationship between both classes Material and Deposito try add something like this in or deposito class:

class deposito(models.Model):
material = models.OneToOneField(Material, on_delete=models.CASCADE, primary_key=True)

than create a function in deposito class like this:

    def value_sub_preco_total(self):
            material = Material.objects.filter(Descricao=self.material)
            preco_total = material.Quantidade * material.Preco
            valor_sub_preco = preco_total - self.valor
            return valor_sub_preco

You can read more about it on Django docs, link:

I hope to help you in someway.