Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime
- from django.db import models
- class Pessoa(models.Model):
- """Uma pessoa é uma tabela geral com os dados principais dos usuario,que poderam
- ser cliente(fisica ou juridica) ou admin, codigo de cadastro lhe identifica"""
- class Meta:
- abstract = True
- ordering = ['login']
- login = models.CharField(max_length=20, default='', primary_key=True)
- nome = models.CharField(max_length=100)
- senha = models.CharField(max_length=20)
- email = models.CharField(max_length=100)
- sexo = models.CharField(max_length=2)
- class Telefone(models.Model):
- """Uma pessoa pode ter N telefones"""
- class Meta:
- ordering = ['ddd','numero']
- unique_together = 'pessoa', 'ddd', 'numero'
- pessoa = models.ForeignKey('Pessoa')
- ddd = models.CharField(max_length=3)
- numero = models.CharField(max_length=9)
- class Endereco(models.Model):
- """Uma pessoa pode ter 1 endereco"""
- class Meta:
- ordering = ['pessoa']
- pessoa = models.OneToOneField('Pessoa',primary_key=True)
- cep = models.CharField(max_length=8)
- rua = models.CharField(max_length=200)
- numero = models.IntegerField()
- bairro = models.CharField(max_length=50)
- complemento = models.CharField(max_length=200)
- class Cliente(Pessoa):
- class Meta:
- abstract = True
- class Admin(Pessoa):
- pass
- class Fisica(Cliente):
- cpf = models.CharField(max_length=11, primary_key=True)
- class Juridica(Cliente):
- cnpj = models.CharField(max_length=14, primary_key=True)
- class Pedido(models.Model):
- """Uma pessoa pode fazer N pedidos"""
- class Meta:
- ordering = ['codigo_pedido','data_pedido']
- unique_together = 'pessoa', 'codigo_pedido'
- pessoa = models.ForeignKey('Pessoa')
- codigo_pedido = models.AutoField()
- data_pedido = models.DateTimeField(default=datetime.now)
- data_entregua = models.DateTimeField()
- valor_total = models.FloatField()
- valor_pago = models.FloatField()
- cancelado = models.BooleanField()
- entregue = models.BooleanField()
- pago = models.BooleanField()
- observação = models.CharField(max_length=200)
- class Produto(models.Model):
- """Um produto pode entar em n pedidos, e um pedido pode conter n produtos"""
- class Meta:
- ordering = ['codigo_pedido']
- codigo_pedido = models.AutoField( primary_key=True)
- login = models.CharField(max_length=20)
- nome = models.CharField(max_length=50)
- preco = models.FloatField()
- disponivel = models.BooleanField()
- unidade = models.CharField(max_length=20)
- class Pedido_Produto(models.Model):
- """NxN"""
- class Meta:
- ordering = cpedido','produto']
- unique_together = 'pedido', 'produto'
- pedido = models.ForeignKey('Pedido')
- produto = models.ForeignKey('Produto')
- preco_total_produto = models.FloatField()
- preco_unidade_produto = models.FloatField()
- quantidade_produto = models.FloatField()
- class Imagem(models.Model):
- """"""
- class Meta:
- ordering = ['titulo']
- titulo = models.CharField(max_length=100)
- slug = models.SlugField(max_length=100, blank=True, unique=True)
- descricao = models.TextField(max_length=100,blank=True)
- original = models.ImageField(
- blank=True,
- upload_to='galeria/original',
- )
- thumbnail = models.ImageField(
- blank=True,
- upload_to='galeria/thumbnail',
- )
- publicacao = models.DateTimeField(default=datetime.now, blank=True)
- class ImagemPessoa(Imagem) :
- """"""
- pessoa = models.OneToOneField('Pessoa',primary_key=True)
- class ImagemProduto(Imagem) :
- """"""
- produto = models.OneToOneField('Produto',primary_key=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement