python3 manage.py migrate 1 ↵
SystemCheckError: System check identified some issues:
ERRORS:
<class 'loja.admin.Matriculas'>: (admin.E108) The value of 'list_display[1]' refers to 'aluno', which is not a callable, an attribute of 'Matriculas', or an attribute or method on 'loja.Matricula'.
<class 'loja.admin.Matriculas'>: (admin.E108) The value of 'list_display[2]' refers to 'curso', which is not a callable, an attribute of 'Matriculas', or an attribute or method on 'loja.Matricula'.
Models.py -
from django.db import models
class Cliente(models.Model):
id = models.IntegerField
nome = models.CharField(max_length=30)
email = models.CharField(max_length=100)
cpf = models.CharField(max_length=11)
telefone = models.CharField(max_length=15)
endereco = models.CharField(max_length=190)
def __str__(self):
return self.nome
class Produto(models.Model):
NIVEL = (
('C', 'Coleção'),
('P', 'Promoção'),
('D', 'Desconto')
)
codigo_Produto = models.CharField(max_length=10)
descricao = models.CharField(max_length=300)
titulo = models.CharField(max_length=250)
nivel = models.CharField(max_length=1, choices=NIVEL, blank=False, null=False,default='C')
def __str__(self):
return self.descricao
class Matricula(models.Model):
PERIODO = (
('M', 'Matutino'),
('V', 'Vespertino'),
('N', 'Noturno')
)
cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE)
produto = models.ForeignKey(Produto, on_delete=models.CASCADE)
periodo = models.CharField(max_length=1, choices=PERIODO, blank=False, null=False,default='M')
views.py
from rest_framework import viewsets, generics
from loja.models import Cliente, Produto, Matricula
from loja.serializer import ClienteSerializer, ProdutoSerializer, MatriculaSerializer, ListaMatriculasClienteSerializer, ListaClientesMatriculadosSerializer
from rest_framework.authentication import BasicAuthentication
from rest_framework.permissions import IsAuthenticated
class ClientesViewSet(viewsets.ModelViewSet):
"""Exibindo todos os Clientes e alunas"""
queryset = Cliente.objects.all()
serializer_class = ClienteSerializer
authentication_classes = [BasicAuthentication]
permission_classes = [IsAuthenticated]
class ProdutosViewSet(viewsets.ModelViewSet):
"""Exibindo todos os Produtos"""
queryset = Produto.objects.all()
serializer_class = ProdutoSerializer
authentication_classes = [BasicAuthentication]
permission_classes = [IsAuthenticated]
class MatriculaViewSet(viewsets.ModelViewSet):
"""Listando todas as matrículas"""
queryset = Matricula.objects.all()
serializer_class = MatriculaSerializer
authentication_classes = [BasicAuthentication]
permission_classes = [IsAuthenticated]
class ListaMatriculasCliente(generics.ListAPIView):
"""Listando as matrículas de um Cliente ou aluna"""
def get_queryset(self):
queryset = Matricula.objects.filter(Cliente_id=self.kwargs['pk'])
return queryset
serializer_class = ListaMatriculasClienteSerializer
authentication_classes = [BasicAuthentication]
permission_classes = [IsAuthenticated]
class ListaClientesMatriculados(generics.ListAPIView):
"""Listando Clientes e alunas Matriculados em um Produto"""
def get_queryset(self):
queryset = Matricula.objects.filter(Produto_id=self.kwargs['pk'])
return queryset
serializer_class = ListaClientesMatriculadosSerializer
authentication_classes = [BasicAuthentication]
permission_classes = [IsAuthenticated]
admin.py
from django.contrib import admin
from loja.models import Cliente, Produto, Matricula
class Clientes(admin.ModelAdmin):
list_display = ('id', 'nome', 'email', 'cpf', 'telefone', 'endereco')
list_display_links = ('id', 'nome')
search_fields = ('nome',)
list_per_page = 20
admin.site.register(Cliente, Clientes)
class Produtos(admin.ModelAdmin):
list_display = ('id', 'titulo', 'codigo_Produto', 'descricao')
list_display_links = ('id', 'codigo_Produto')
search_fields = ('codigo_Produto',)
admin.site.register(Produto, Produtos)
class Matriculas(admin.ModelAdmin):
list_display = ('id', 'aluno', 'curso', 'periodo')
list_display_links = ('id', )
admin.site.register(Matricula, Matriculas)`