Cómo podemos personalizar el admin de Django?
Cómo se cambian el orden el de los campos?
Cómo se liga otro modelo?
Para esto debemos ir al archivo admin.py, y creamos una clase que hereda de admin.ModelAdmin
from django.contrib import admin
from .models import Question
class QuestionAdmin(admin.ModelAdmin):
fields = ["pub_date", "question_text"]
admin.site.register(Question)
Creamos una clase que herede de admin.StackedInLine.
from django.contrib import admin
from .models import Choice, Question
class ChoiceInLine(admin.StackedInline):
model = Choice
extra = 2
class QuestionAdmin(admin.ModelAdmin):
fields = ["pub_date", "question_text"]
inlines = [ChoiceInLine]
admin.site.register(Question, QuestionAdmin)
<aside> 📌 Resumen: Para modificar el administrador modificamos el archivo admin que nos dará control sobre lo que podemos mostrar para agilizar el trabajo.
</aside>
Qué cosa más se puede se puede modificar en Admin?
Para tener más idea de esto revisa la documentación
.
Algunas de las cosas que podemos hacer es agregar más campos visibles (fehcas, …), filtros y un buscardor.
Agregar más campos:
class QuestionAdmin(admin.ModelAdmin):
fields = ["pub_date", "question_text"]
inlines = [ChoiceInLine]
list_display = ("question_text", "pub_date", "was_published_recently")
Agregar filtros:
class QuestionAdmin(admin.ModelAdmin):
fields = ["pub_date", "question_text"]
inlines = [ChoiceInLine]
list_display = ("question_text", "pub_date", "was_published_recently")
list_filter = ["pub_date"]
Al agregar un list_filter se agrega un filtrador para nuestros datos.
Agregar un buscador:
class QuestionAdmin(admin.ModelAdmin):
fields = ["pub_date", "question_text"]
inlines = [ChoiceInLine]
list_display = ("question_text", "pub_date", "was_published_recently")
list_filter = ["pub_date"]
search_fields = ["question_text"]
<aside> 📌 Resumen: Para encontrar más rápido los datos, podemos modificar el archivo admin para hacernos más fácil, el filtrado de datos.
</aside>