No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Básico de Django

Curso Básico de Django

Facundo García Martoni

Facundo García Martoni

El administrador de Django

17/29
Recursos

Aportes 20

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Para poder ver en el Question las Choice agregar el siguiente código en el archivo admin y quitando el registro anterior.

class ChoicesInline(admin.StackedInline):
    model = Choice
    can_delete = False
    verbose_name_plural = 'choices'

@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
    inlines = (ChoicesInline,)

ASI ASI ASI ES QUE SE ENSEÑA!

Para registrar uno o mas modelos puedes pasarlos dentro de una lista:

from django.contrib import admin
from .models import Question, Choice

admin.site.register([Question, Choice])

En el models se puede agregar una clase Meta dentro de la clase del modelo para definir más atributos del modelo, por ejemplo el nombre que queremos que se visualice el modelo o el campo por el que se debe mostrar ordenados los datos. Pueden encontrar más información en https://docs.djangoproject.com/en/4.0/ref/models/options/

class Question(models.Model):
    question_text= models.CharField(max_length=200)
    pub_date= models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ["pub_date"]
        verbose_name_plural = "Preguntas de la Encuesta"

Para visualizar el administrador de Django en español, tendrían que modificar en el archivo settings la variable LANGUAGE_CODE = 'es-mx’
En mi caso lo estoy asignando al español de México pero podrían ponerlo al que ustedes requieran.

Cosas a tener en cuenta aquí:

  1. El formulario se genera automáticamente a partir del Questionmodelo.

  2. Los diferentes tipos de campo de modelo ( DateTimeField, CharField) corresponden al widget de entrada HTML adecuado. Cada tipo de campo sabe cómo mostrarse en el administrador de Django.

  3. Cada uno DateTimeField obtiene atajos de JavaScript gratuitos. Las fechas obtienen un acceso directo “Hoy” y una ventana emergente de calendario, y las horas obtienen un acceso directo “Ahora” y una ventana emergente conveniente que enumera las horas ingresadas comúnmente.

Cuando se crea un usuario usando el admin de Django es importante marcar la opcion is_staff para que pueda ingresar también al admin web

Aquí les dejo un link donde explican más a profundidad toda la configuración y personalización de Django Admin.

Customize the Django Admin With Python

The way we set a scalabable way to access the queries and handling the data in a no-code way

python manage.py createsuperuser
Username (leave blank to use 'root'): aprendefelipe
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

First we have to set the availability of the model for the admin at polls/admin.py

from django.contrib import admin
from .models import Question, Choice

admin.site.register(Question) #this function set the model available for the admin
admin.site.register(Choice)

at /admin



Here we can access to our questions and take actions like create, delete and so on


it’s impresive that the choices are related to the question as we set and also we can change it or create and relate choices to other questions


Users management


Groups Management

Para ver las Choice en el admin solo debes agregar en admin-py:

# polls/admin.py
from django.contrib import admin
from .models import Question, Choice

admin.site.register(Question)
admin.site.register(Choice)

Dentro del admin modifique los votos y para verlo en el shell le agregue al str:

    #Metodo para imprimir el valor de choice_text
    def __str__(self):
        return self.choice_text+" -- "+str(self.votes)

Por lo que veo aquí podemos crear más usuarios y asignar a los usuarios a ciertos grupos. Esto es muy bueno y seguro porque podemos darle o quitarle poder a los usuarios creados y así habrá una mejor administración de las personas que están en el proyecto de Django.

Esta muy bien el administrador!

Users : permite crear otros usuarios.
Groups : con lo poco que la visión exploratoria me permite apreciar, es una sección la cual puedo habilitar permisos.

Sin duda, Django tiene baterias extra. Me emocioné con está clase. 😄

Esto es lo más hermoso que he hecho con python hasta el momento. Viva Django

Si desea cambiar el nombre de los módulos a español en Django haces esto:

from django.apps import AppConfig

class AccountingConfig(AppConfig):
    default_auto_field = "django.db.models.BigAutoField"
    name = "apps.accounting"
    verbose_name = "Modulo Contable"

En el archivo pyhton apps py de cada aplicación de Django agregar el atributo verbose_name con le nombre que le quiera dar a la aplicación.

Una cosa que me ha llamado la atención del admin es que, por defecto (no sé si se puede configurar posteriormente), no te deje editar los registros de una clase.

Que el admin esté incorporado por defecto en DJango, con un modelo de usuarios me parece fantástico. Tengo ganas de ver cómo se puede escalar el modelo de usuarios, roles y permisos para montar accesos limitados por usuarios y roles XD

Para mí, este es una de las características más atractivas de django, te facilita mucho la vida como dev. Es muy configurable y muy poderoso.

En la opción **Group ** dentrp de django admin,

Nos permite crear grupos para darle permisos de acceso a las diferentes opciones de interacción con los modelos (Create, View, Update, Delete)