1
resposta

NameError: name 'Alunos' is not defined

Log:
File "C:\Users\computer\escola\escola\admin.py", line 10, in <module>
    admin.site.register(Aluno, Alunos)
NameError: name 'Alunos' is not defined. Did you mean: 'Aluno'?

código admin

from django.contrib import admin
from escola.models import Aluno,Curso

class Aluno(admin.ModelAdmin):
    list_display = ('id','nome','rg','cpf','data_nascimento')
    list_display_links = ('id','nome')
    search_fields = ('nome',)
    list_per_page = 20

admin.site.register(Aluno, Alunos)

class Cursos(admin.ModelAdmin):
    list_display = ('id','codigo_curso','descricao')
    list_display_links = ('id','codigo_curso','descricao')
    search_fields = ('codigo_curso')

admin.site.register(Curso, Cursos)
1 resposta

Oii Daniel, como você está?

Peço desculpas pela demora em obter um retorno.

O erro apresentado, NameError, está sendo levantado devido a nomenclatura usada para a classe responsável pela exibição do modelo dos Alunos no painel admin.

No arquivo admin.py a classe Aluno foi declarada no singular (sem o S), basta modificar o nome da classe para Alunos, como apresentado abaixo.

class Alunos(admin.ModelAdmin):
    list_display = ('id','nome','rg','cpf','data_nascimento')
    list_display_links = ('id','nome')
    search_fields = ('nome',)
    list_per_page = 20

Realizando essa mudança, a função admin.site.register(Aluno, Alunos) que recebe como parâmetro um modelo (Aluno) e uma classe (Alunos) encontrará a referência para a classe.

Em um segundo ponto que será necessário realizar uma mudança, no campo search_fields da classe Cursos devemos adicionar uma vírgula após o objeto 'codigo_curso', quando temos uma tupla com um único objeto, devemos declarar o objeto e adicionar uma vírgula após o objeto, com apresentado abaixo.

search_fields = ('codigo_curso',)

Classe Cursos completa para comparação

class Cursos(admin.ModelAdmin):
    list_display = ('id','codigo_curso','descricao')
    list_display_links = ('id','codigo_curso','descricao')
    search_fields = ('codigo_curso',)

Qualquer dúvida fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!