Apresentacao models

658 visualizações

Publicada em

Apresentação básica sobre o ORM de models do django
Managers, Querysets e admin site.

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
658
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Apresentacao models

  1. 1. Django Models● Estrutura da classe models.Model● Como funcionam os managers● Queryset e seus atributos ● Como o django gera SQL? ● Consultas compexas● Integração com o pacote admin● Básico do admin Guilherme Kuhn 1
  2. 2. models.Model ● Atributos mais usados da class Meta: ● db_table ● managed ● ordering ● unique_together ● verbose_name ● verbose_name_plural    
  3. 3. models.Model db_table ● Nome da tabela que será usada. ● db_table = PESSOA_FISICA ● Oracle com usuarios ● db_table = sisacad”.”PESSOA_FISICA   
  4. 4. models.Model managed ● O atributo managed informa se o django deve ou  não criar a tabela quando executado o syncdb ● Valores: True/False ● Default: True   
  5. 5. models.Model ordering ● Determina a ordenação padrão do model. ● Valores: Lista dos campos em sequencia. ● Não é usado quando: ● Orcamento.objects.order_by(valor) ● Orcamento.objects.filter().order_by(valor) ● É usado quando: ● Orcamento.objects.filter() ● Orcamento.objects.all()   
  6. 6. models.Model unique_together ● Usado unicamente na geração do SQL para a  criação das tabelas. ● Valores: Tupla unica, ou lista de tuplas ● unique_together = (campo, campo1, campo2) ● unique_together = ( (campo1, campo2), (campo2, campo3), )   
  7. 7. models.Model verbose_name(_plural) ● Se este atributo não for informado por padão o  django irá usar o nome da classe. ● Usado no menu da interface de administração.   
  8. 8. class Meta:   
  9. 9. Model Fields ● Atributos básicos ● Null ● editable ● Blank ● help_text ● Choices ● primary_key ● db_column ● Unique ● db_index ● verbose_name ● Default ● validators   
  10. 10. Model Fields ● Null – Relação com o Banco de Dados ● True/False ­  Default: False ● Blank – Relação com o formulário – igual null. ● Choices – Mesmo comportamento do Forms. ● db_column – Informa o nome do campo na tabela. ● db_index – Cria um idice para o campo. ● True/False – Default: False ● Default – informa um valor padrão para o campo  ● Pode ser um método  
  11. 11. Model Fields ● Editable – Referencia ao Form. Se False, o campo  não aparece no formulário. ● help_text – mesmo comportamento do Forms. ● Primary_key – Indica se um campo é pk da tabela. ● Não é suportado chave primaria composta ● Apenas 1 campo deve ter primary_key = True. ● Unique – Cria o campo na tabela como sendo de  valor unico. ● Validators – lista com metodos para validar os   valores inseridos no campo.  
  12. 12. Model Fields   
  13. 13. Managers ● Interface de comunicação entre o model e o banco  de dados. ● Principais métodos: ● .filter(*args, **kwargs) ● .order_by(lista ou string) ● .get(*args, **kwargs) ● .all()   
  14. 14. Managers ● .filter(*args, **kwargs) ● .filter(campo1=teste, campo2=1234) ● .filter(**{campo1: teste}) ● pesquisa = {campo2: 1234} ● .filter(campo1=teste, **pesquisa) ● Retorna sempre um objeto Queryset   
  15. 15. Managers ● .get(*args, **kwargs) ● Aceita o mesmo tipo de parametro que o .filter ● Retorna apenas 1 objeto sempre ● Caso não seja encontrado nenhum objeto joga  exception model.DoesNotExist ● Caso seja encontrado mais de 1 objeto, joga  exception model.MultipleObjectsReturned   
  16. 16. Managers ● .all() ­ Retorna um queryset com todos os objetos  cadastrados. ● .order_by(order) ● Retorna um queryset com os objetos ordenados  conforme a ordenação passada.   
  17. 17. Queryset ● Field Lookups ● Complementos das consultas para cada campo. ● exact, iexact, contains, icontains, in, gt, gte, lt, lte,  startswith, istartswith, endswith, iendswith, range,  isnull.   
  18. 18. Queryset ● A execução de um queryset é preguiçosa. ● Podemos executar diversos filtros um sobre o outro,  para termos uma consulta complexa no final.   
  19. 19. Queryset   
  20. 20. Consultas complexas ● Objeto Q (from django.db.models import Q) ● Objetos Q podem ser passados para o manager ou  para um queryset. ● Sintaxe: ( | OR) (& AND)   
  21. 21. Admin ● from django.contrib import admin ● Classe admin.ModelAdmin ● list_display = (campo, campo2, campo3,) ● list_filters = (campo3,campo4) ● search_fields = [campo,campo1] ● Registrando Admin. ● admin.site.register(ModelName, AdminName)   
  22. 22. Admin   
  23. 23. Contato Guilherme Kuhn <g.kuhn0@gmail.com> http://gkuhn.com   

×