FAQ: O admin

Eu não consigo me autenticar. Quando eu entro com um nome de usuário e senha válidos mostra apenas a página de autenticação novamente, sem mensagens de erro.

O cookie de login não foi definido corretamente pois o domínio do cookie enviado pelo Django não confere com o domínio do seu navegador. Tente alterar as configurações em SESSION_COOKIE_DOMAIN para que coincidam com seu domínio. Por exemplo, se você está acessando “https://www.example.com/admin/” em seu navegador, defina SESSION_COOKIE_DOMAIN = 'www.example.com'.

Eu não consigo me autenticar. Quando eu entro com um nome de usuário e senha válidos, apenas retorno para a página de autenticação novamente, com o erro: “Por favor informe o nome de usuário e senha corretos”.

Se você está certo que o nome de usuário e senha estão corretos, assegure-se que esta conta de usuário possua is_active e is_staff definidos como True. A página de administração só permite acesso a usuários com esses dois campos definidos como Verdadeiro.

Como eu atribuo o valor de um campo automaticamente para conter o usuário que editou um objeto por último no admin?

A classe ModelAdmin possui métodos customizáveis que te permitem tratar um objeto a ser salvo, usando detalhes da requisição. Reescrevendo o método save_model() e extraindo o usuário atual da requisição, você pode atualizar um objeto informando qual usuário fez a ação. Veja a documentação sobre os métodos do ModelAdmin para um exemplo.

Como eu limito o acesso ao admin para que objetos possam ser editados apenas pelos usuários que os criaram?

A classe ModelAdmin possui métodos customizáveis que permitem o controle de visibilidade e edição de objetos no admin. Da mesma forma utilizada para extrair o usuário de uma requisição, os métodos get_queryset() e has_change_permission() podem ser usados para controlar a visibilidade e edição de objetos no admin.

O CSS e as imagens da interface de admin do meu site são exibidos corretamente quando uso o servidor de desenvolvimento, no entanto eles não estão sendo exibidos quando utilizo mod_wsgi.

Veja: servindo os arquivos de administração na documentação: “Como usar Django com mod_wsgi”.

Meu “list_filter” contém um campo ManyToManyField, mas o filtro não é exibido.

Django não irá se incomodar em mostrar o filtro para um ManyToManyField se existerem menos que dois objetos relacionados.

Por exemplo, se o seu list_filter incluir sites, e existir apenas um site no seu banco de dados, não será exibido o filtro “Site”. Neste caso, filtrar por site se tornou sem sentido.

Alguns objetos não estão aparecendo na página de administração.

Contagem de linhas inconsistente pode ser causada por valores de chave estrangeiras faltantes ou um campo de chave estrangeira configurado incorretamente para: attr: null = False <django.db.models.Field.null>. Se você tiver um registro com uma classe: ~ django.db.models.ForeignKey ‘apontando para um objeto inexistente e essa chave externa incluída é: attr: ~ django.contrib.admin.ModelAdmin.list_display`, a gravação não será mostrado na lista de alterações do administrador porque o modelo do Django está declarando uma restrição de integridade que não está implementada no nível do banco de dados.

Como consigo personalizar a funcionalidade da interface de administração?

Você tem várias opções. Se você quiser adicionar em um formulário de adição/alteração que o Django gera automaticamente, você pode incluir módulos JavaScript arbitrários para a página através da classe Admin do modelo parâmetro js. Esse parâmetro é uma lista de URLs, como strings, apontando para módulos JavaScript que serão incluídos dentro do formulário da administração pela tag <script>.

Se você quiser mais flexibilidade do que é possível através de ajustes aos formulários gerados automaticamente, sinta-se a vontade para escrever views personalizadas para a parte administrativa. A parte administrativa é feita com Django também, e com isso você pode escrever views customizadas que se acoplem ao sistema de autenticação, chequem permissões ou façam qualquer outra coisa que precisem fazer.

Se você quer personalizar a aparência da interface de administração, leia a próxima pergunta.

O site de administração gerado dinamicamente é feio! Como posso modificá-lo?

Nós gostamos disso, mas, se você não concorda, você pode modificar a apresentação do site da administração ao editar as folhas de estilo CSS e/ou os arquivos de imagem associados. O site é feito usando HTML semântico e muitas regras CSS, então qualquer mudança que você quiser fazer deve ser possível ao editar as folhas de estilo.

Quais navegadores são suportados para uso da interface de administração?

O admin fornece uma experiência totalmente funcional para as versões recentes de navegadores modernos em conformidade com os padrões da web. No desktop, isso significa Chrome, Edge, Firefox, Opera, Safari e outros.

Em dispositivos móveis e tablets, o admin fornece uma experiência responsiva para navegadores compatíveis com os padrões da web. Isso inclui os principais navegadores em Android e iOS.

Dependendo do suporte ao recurso, pode haver pequenas diferenças estilísticas entre os navegadores. Estas são consideradas variações aceitáveis na renderização.

Back to Top