Advertisement
phiron

Exemplo de Múltiplos relacionamentos

Feb 22nd, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1. class Produto(models.Model):
  2.     categoria = models.ForeingKey(Categorias)
  3.     nome = models.CharField(max_length=200)
  4.  
  5. class Atividade(models.Model):
  6.     nome = models.CharField(max_length=200)
  7.  
  8. class Orcamento(models.Model):
  9.     atividade = models.ForeignKey(Atividade)
  10.     data = models.DateField()
  11.     fornecedor = models.ForeignKey(Fornecedor)
  12.     produtos = models.ManyToManyField(Produto,through="ProdutosOrcamento")
  13.  
  14. class ProdutosOrcamento(models.Model):
  15.     '''
  16.    Classe que relaciona o produto com o orçamento
  17.    '''
  18.     produto = models.ForeignKey(Produto)
  19.     orcamento = models.ForeignKey(Orcamento)
  20.     quantidade = models.IntegerField(default = 1)
  21.     descricao = models.TextField(verbose_name = "descrição",help_text="Descrição do produto",null=True,blank=True)
  22.     unidade = models.ForeignKey(UnidadesMedida,blank=True,null=True)
  23.     valor = models.DecimalField(max_digits=24, decimal_places=2,blank=True,null=True,help_text="Valor unitário do produto")
  24.     licitacao = models.BooleanField("licitação",default = False)
  25.     usuario_criacao=models.ForeignKey(User,related_name='%(app_label)s_%(class)s_related',blank=True,null=True)
  26.     usuario_edicao=models.ForeignKey(User,null=True,related_name='editor%(app_label)s_%(class)s_related',blank=True)
  27.     @property
  28.     def valor_total(self):
  29.         quantidade = self.quantidade if isinstance(self.quantidade,(int,float,Decimal)) else 0
  30.         valor = self.valor if isinstance(self.valor,(int,float,Decimal)) else 0
  31.         return Decimal(quantidade * valor)
  32.     class Meta:
  33.         ordering=('licitacao','natureza_despesa','categoria_despesa')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement