12 3_Panel_Administrador
jp.av.dev edited this page 2021-07-02 22:12:39 -04:00

Ir a: Repositorio, Proyecto y apps (bd), Formularios


Panel de Administrador

Activo por defecto

settings.py

...
INSTALLED_APPS = [
    'django.contrib.admin',
    ...

urls.py

...
urlpatterns = [
    path('admin/', admin.site.urls),
    ...

enlace a admin

Crear SuperUsuario, con perfíl de administrador

python3 manage.py createsuperuser
Username (leave blank to use 'sat'): Roberrrt
Email address: admin@gitea.com
Password: 
Password (again): 
Superuser created successfully.

Explorando la BD

tabla auth_user

id password last_login is_superuser username first_name last_name email is_staff is_active date_joined
1 pbkdf2_sha256$216000$zw4Zuc6weyCN$Vwn8SM6zPA3hIofcmQiz4mIuU6tL7U/vvWs= 2020-11-13 02:40:20 true Roberrrt admin@gitea.com true true 2020-11-13 02:38:41
2 pbkdf2_sha256$216000$188Gs3iRpsWb$X49lPG/2IlRlsaanXqUBZ6YOMIvctZ+U0Gg= false Roberrrt2 false true 2020-11-13 02:41:43

Administrar tablas desde el Panel

admin.py

from django.contrib import admin
from gestionPedidos.models import Clientes

admin.site.register(Clientes)

Configurar campo 'email' como opcional, clase Cliente

models.py

...
class Clientes(models.Model):
    ...
    email = models.EmailField(blank=True, null=True)
    ...

cambios en el modelo, requieren migración
python3 manage.py makemigrations
python3 manage.py migrate

Personalización del Panel

Admin. Clientes Django por defecto presenta los nombres de los campos capitalizados y elimina el texto posterior a '_' ( ej. modelo nombre_clientes ).

Columnas en el Panel de admin.

Add clientes

Nombre:
Direccion:
Email:
Fono:

Modificar nombre visible de tablas

Personalizar nombre a mostrar en panel, en el Modelo. models.py

class Clientes(models.Model):
    ...
    direccion = models.CharField(max_length=50, verbose_name="La Direcc.:")
    ...

Vista Panel

Add clientes

Nombre:
La Direcc.:
Email:
Fono:

Ver otros campos de tablas a modificar en panel

gestionPedidos/admin.py

from django.contrib import admin
from gestionPedidos.models import Clientes, Articulos, Pedidos

class ClientesAdm(admin.ModelAdmin):
    list_display("nombre", "direccion", "fono")

admin.site.register(Clientes, ClientesAdmin)

vista en Panel

Nombre La Direcc. Fono
Elejendre calle 16 2445234234
Zerafín dnd vive 123456789
Pedro ruta 2 9873456789

Agregar campo de busqueda

gestionPedidos/admin.py

class ClientesAdmin(admin.ModelAdmin):
    list_display = ("nombre", "direccion", "fono")
    # Campos de busqueda en la barra
    search_fields = ("nombre","fono")

Agregar Filtros

admin.py

class ArticulosAdmin(admin.ModelAdmin):
    list_filter = ("seccion",)

vista filtro en panel

Filter by Secion
All
deco
deporte
ferreteria
jugetes
vestuario

Tambien se puede filtar por fecha
admin.py

class PedidosAdmin(admin.ModelAdmin):
    list_display = ("numero", "fecha")
    list_filter = ("fecha",)


admin.site.register(Pedidos, PedidosAdmin)

vista filtro en panel

Filter by Fecha
Any date
Today
Past 7 days
This month
This Year

Filtro de disposicion horizontal, estilo menú
admin.py

class PedidosAdmin(admin.ModelAdmin):
    list_display = ("numero", "fecha")
    list_filter = ("fecha",)
    # Filtro-barra*
    date_hierarchy = "fecha"

Vista del Panel de Administrador
img

Cambiar Idioma

settings.py

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'es-CL'

Agregar usuarios, perfiles

  • Usuario STAFF, puede administrar el sitio desde el panel, se puede limitar.
  • Usuario ACTIVO, puede entrar en partes del sitio que requieran autenticación.

Agregar grupos

Permite crear Grupos, con permisos específicos.
Se pueden agregar permisos extra por usuario.


Ir a: Repositorio, Proyecto y apps (bd), Formularios