A, presentaciones de enchufe acción
1. plug-in de acción proporciona los datos de la página de lista de datos de la función seleccionada. Puede ocuparse específicamente de los datos seleccionados después de la acción. Lotes función de eliminación como la acción predeterminada proporcionada.
2. Para activar la acción, los desarrolladores pueden establecer la Clase Modelo atributos "acciones", que es un tipo de lista.
xadmin dirección oficial: https://xadmin.readthedocs.io/en/latest/plugins.html
En segundo lugar, la operación específica
1. primero tiene una clase que hereda de Acción BaseActionView
de xadmin.plugins.actions importación BaseActionView clase MyAction (BaseActionView): # aquí para llenar tres propiedades ACTION_NAME = " my_action " # : equivalente únicamente identifica esta acción, tratar de comparar con el nombre apuntado la descripción = _ (T ' Test seleccionado% (verbose_name_plural) S ' ) # : descripción aparece en el menú Acciones, se puede usar ``% (verbose_name_plural) s`` en lugar del nombre del modelo. model_perm = ' Cambiar ' # : la acción requerida autorización # do_action entonces implementado métodos DEF do_action (Ser, QuerySet): #queryset ya contiene una selección de queryset datos de obj en queryset: # obj operación ... # retorno HttpResponse volver HttpResponse (...)
2. La acción en esta solicitud corresponde Clase Modelo
clase MyModelAdmin (objeto): acciones = [MyAction,]
En tercer lugar, la operación de ejemplo
En la página Lista de Estudiantes, tengo que comprobar diferentes elementos para lograr el vaciado de los estudiantes en edad operación, un nuevo archivo adminx_actions.py en el mismo directorio adminx.py
# ACTION_NAME identifica de forma exclusiva la acción de # La descripción aparece en el nombre del menú Acción # La acción requerida permisos model_perm, un total de cuatro ( 'Add', 'Cambio', 'la Borrar', 'Ver') # muestra el icono iconos # ejecución do_action acciones
adminx_actions.py
de django.http importación HttpResponse de xadmin.plugins.actions importación BaseActionView clase ClearAction (BaseActionView): "" " Acción vacío " "" ACTION_NAME = " clear_score " # aparece en el menú Acción, el nombre de la descripción = U ' vacío puntajes% (verbose_name_plural) S ' # permisos de acción model_perm = ' Cambiar ' icono = ' FA FA-bichos ' DEF do_action (Ser, QuerySet): para obj enqueryset: obj.student_age = 0 obj.save () de retorno Ninguno
adminx.py
clase ControlStudent (Objeto): # campo de visualización list_display = ( ' student_no ' , ' student_name ' , ' student_age ' , ' student_score ' , ' student_gender ' , ' maestro ' ) # consulta search_fields = ( ' student_name ' ,) # por visualización de n list_per_page = 5. acciones = [ClearAction,] DEF maestro (Ser, obj): retorno[x.teacher_name para x en obj.teachers.all ()]
página del navegador: