Configuração e Uso Básico do Xadmin no Django

Instalação do Xadmin

Existem duas formas principais de instalar o Xadmin:

Método 1: Instalação via pip

Pode ocorrer um erro de codificação durante a instalação via pip. Neste caso, é necessário baixar o código-fonte, corrigir o arquivo README.rst e então realizar a instalação locamlente.

Para mais detalhes, clique aqui.

Método 2: Instalação via Código-Fonte

Baixe o código-fonte do Xadmin do GitHub. Em seguida, adicione o pacote do app xadmin diretamente ao seu projeto como um app de terceiros. Lembre-se de registrá-lo no settings.py.

Veja os detalhes a seguir em um exemplo de uso simplificado.

Uso Básico do Xadmin

Siga estes passos para uma configuração inicial:

Passo 1: Configuração no settings.py

Adicione os seguintes apps à lista INSTALLED_APPS:


INSTALLED_APPS = [
    # ... outros apps
    'xadmin',
    'crispy_forms',
    # ... outros apps
]

Passo 2: Configuração das URLs

Atualize o arquivo de configuração de URLs principal do seu projeto (geralmente urls.py) para incluir as URLs do Xadmin:


from django.conf.urls import url
import xadmin

urlpatterns = [
    # Descomente ou remova a linha original do admin do Django se necessário
    # url(r'^admin/', admin.site.urls),
    url(r'^xadmin/', xadmin.site.urls),
]

Passo 3: Criação e Migração Inicial das Tabelas

Antes de usar o Xadmin, é crucial executar as migrações para criar as tabelas do banco de dados. Caso contrário, você receberá um erro 1146.


python manage.py makemigrations
python manage.py migrate

Passo 4: Registro de Modelos no Xadmin

Crie um arquivo chamado adminx.py dentro do diretório de cada um dos seus apps (você pode remover ou ignorar o arquivo admin.py original se desejar). Registre seus modelos usando a sintaxe do Xadmin.


import xadmin
from .models import UserAsk, UserCourse, UserMessage, CourseComments, UserFavorite

# Registro do modelo UserAsk
class UserAskAdmin(object):
    list_display = ['name', 'mobile', 'course_name', 'add_time']
    search_fields = ['name', 'mobile', 'course_name']
    list_filter = ['name', 'mobile', 'course_name', 'add_time']
    # Adicione mais configurações conforme necessário

xadmin.site.register(UserAsk, UserAskAdmin)

# Repita o processo para outros modelos:
# xadmin.site.register(UserCourse, UserCourseAdmin)
# xadmin.site.register(UserMessage, UserMessageAdmin)
# ...

Passo 5: Acessando o Painel e Criando um Superusuário

Acesse o painel administrativo do Xadmin através do URL configurado (ex: http://127.0.0.1:8000/xadmin/). Você precisará de uma conta de superusuário para fazer login.

Crie um superusuário usando o sgeuinte comando:


python manage.py createsuperuser

Após o login, você poderá visualizar e gerenciar os dados das tabelas registradas.

Configuração Global do Xadmin

O Xadmin oferece opções de personalização global para o painel administrativo.

Habilitando Funcionalidades de Tema

Para ativar as opções de tema, adicione a seguinte configuração em qualquer um dos seus arquivos adminx.py:


from xadmin import views

class BaseConfiguration(object):
    enable_themes = True  # Ativa a funcionalidade de temas
    use_bootswatch = True # Habilita a seleção de temas da biblioteca Bootswatch

xadmin.site.register(views.BaseAdminView, BaseConfiguration)

Alterando Título, Rodapé e Estilo do Menu

Você pode personalizar o título exibido no painel, o texto do rodapé e o estilo de organização do menu lateral.


# Configurações Globais do Site
class GlobalConfiguration(object):
    site_title = "Sistema de Gerenciamento Alpacas"     # Título exibido no canto superior esquerdo
    site_footer = "Associação Geral dos Alpacas"        # Texto exibido no rodapé da página
    menu_style = "accordion"                           # Organiza os menus laterais em formato de acordeão por App

xadmin.site.register(views.CommAdminView, GlobalConfiguration)

Ajustando Nomes de Exibição dos Apps (Django Nativo)

A alteração dos nomes de exibição dos aplicativos é uma funcionalidade nativa do Django, não diretamente do Xadmin. Para isso, modifique os arquivso apps.py e __init__.py de cada app.

No arquivo apps.py, adicione o atributo verbose_name:


from django.apps import AppConfig

class UsersConfig(AppConfig):
    name = 'users'
    verbose_name = "Gerenciamento de Usuários"   # Nome de exibição do App

No arquivo __init__.py do mesmo app, adicione a linha para habilitar a configuração:


default_app_config = "users.apps.UsersConfig"

Tags: Django xadmin admin configuration Python

Publicado em 9-5 13:02