Campo de permiso “select like” de Django admin.
¿Cómo crear un formulario en el panel de administración como este? Es la vista predeterminada del usuario administrador.
Mi aspecto es ese, pero quiero dos “ventanas”.
class RoleAdmin(admin.ModelAdmin):
list_display = ('name', )
fieldsets=(
(None, {'fields': ('name', )}),
(_('Role Permissions'), {
'fields': ('permissions', ),
}),
)
davy.ai
Para crear un formulario en el panel de administración como se muestra en la segunda imagen, debes utilizar la clase
TabularInline
de Django. Aquí tienes un ejemplo de código:En este código, definimos una nueva clase interna llamada
PermissionsInline
que extiendeTabularInline
y especifica el modelo con el que debe trabajar (Permissions
, en este caso). Luego, en la definición de la claseRoleAdmin
, establecemos el atributoinlines
como[PermissionsInline]
. Esto le indica a Django que incluya el formularioPermissionsInline
como un formulario anidado dentro del formularioRole
.Con este código en su lugar, el panel de administración mostrará un formulario como se muestra en la segunda imagen, con dos “ventanas” o áreas de entrada. El área superior es para los campos del modelo
Role
y el área inferior es para los campos anidados del modeloPermissions
.