A, apresentações acção do obturador
1. plug-in Action fornece dados sobre a página da lista de dados função selecionada. Você pode lidar especificamente com os dados selecionados após a ação. Lote função de exclusão como a ação padrão fornecido.
2. Para habilitar Ação, os desenvolvedores podem definir os atributos de classe de modelo "ações", que é um tipo de lista.
xadmin endereço oficial: https://xadmin.readthedocs.io/en/latest/plugins.html
Em segundo lugar, a operação específica
1. primeira necessidade uma classe de ação que herda BaseActionView
de xadmin.plugins.actions Import BaseActionView classe MyAction (BaseActionView): # aqui para preencher três propriedades ACTION_NAME = " my_action " # : equivalente Identifica exclusivamente desta acção, tentar comparar com o nome direcionado a Description = _ (U ' do Teste % Selected (verbose_name_plural) S ' ) # : descrição aparece no menu Ação, você pode usar ``% (verbose_name_plural) s`` vez do nome do modelo. model_perm = ' Mudar ' # : a ação necessária permissão # do_action então implementado métodos DEF do_action (Self, QuerySet): #queryset já contém selecionados queryset dados para obj em queryset: # obj operação ... # retorno HttpResponse retornar HttpResponse (...)
2. Acção sobre esta aplicação corresponde Classe Modelo
classe MyModelAdmin (objecto): acções = [MyAction,]
Em terceiro lugar, a operação de exemplo
Na página Lista de Student, eu preciso verificar itens diferentes para conseguir esvaziar estudantes da idade da operação, um novo arquivo adminx_actions.py no mesmo adminx.py diretório
# ACTION_NAME identifica exclusivamente a Ação do # A descrição aparece no nome do menu Ação # A ação necessária permissões model_perm, um total de quatro ( 'Adicionar', 'Mudança', 'Delete', 'View') # ícone exibe ícones # execução do_action ações
adminx_actions.py
de django.http Import HttpResponse de xadmin.plugins.actions Import BaseActionView classe ClearAction (BaseActionView): "" " Ação vazio " "" ACTION_NAME = " clear_score " # aparece no menu Ação, nomear o Description = U ' vazio pontuações% (verbose_name_plural) S ' # permissões de ação model_perm = ' Mudar ' icon = ' FA FA-bugs ' DEF do_action (Self, QuerySet): para obj emqueryset: obj.student_age = 0 obj.save () retorno Nenhum
adminx.py
classe ControlStudent (Object): # campo de exibição list_display = ( ' student_no ' , ' student_name ' , ' student_age ' , ' student_Score ' , ' student_gender ' , ' professor ' ) # consulta search_fields = ( ' student_name ' ,) # per exibição de n list_per_page 5 =. ações = [ClearAction,] DEF professor (Self, obj): retorno[x.teacher_name para x em obj.teachers.all ()]
página do navegador: