desenvolvimento de testes Django -34- modelo xadmin para adicionar plug-in ação

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:

 

Acho que você gosta

Origin www.cnblogs.com/chushujin/p/12614631.html
Recomendado
Clasificación