如何在Django管理站点中添加"添加用户"按钮旁边的按钮

Bra*_*kti 19 python django django-templates django-forms django-admin

我正在研究Django项目,我需要从Django Admin的用户屏幕中提取用户列表.我actions在我的Sample Class中添加了一个变量,用于在每个用户的id之前获取CheckBox.

class SampleClass(admin.ModelAdmin):
    actions =[make_published]
Run Code Online (Sandbox Code Playgroud)

动作make_published已经定义.现在我想在按钮旁边添加另一个Add user按钮,如图所示. 管理员用户界面.但我不知道如何在不使用新模板的情况下实现这一目标.我想使用该按钮将所选用户数据打印到excel.谢谢,请指导我.

n1_*_*n1_ 32

  1. 在模板文件夹中创建模板:admin/YOUR_APP/YOUR_MODEL/change_list.html
  2. 把它放到那个模板中

    {% extends "admin/change_list.html" %}
    {% block object-tools-items %}
    
        {{ block.super }}
    
        <li>
            <a href="export/" class="grp-state-focus addlink">Export</a>
        </li>
    
    {% endblock %}
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建一个视图函数YOUR_APP/admin.py并使用注释对其进行保护

    from django.contrib.admin.views.decorators import staff_member_required
    
    @staff_member_required
    def export(self, request):
    
        ... do your stuff ...
    
        return HttpResponseRedirect(request.META["HTTP_REFERER"])
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将新网址添加到YOUR_APP/admin.py管理模型的url配置中

    from django.conf.urls import patterns, include, url
    
    class YOUR_MODELAdmin(admin.ModelAdmin):
    
        ... list def stuff ...
    
        def get_urls(self):
            urls = super(MenuOrderAdmin, self).get_urls()
            my_urls = patterns("",
                url(r"^export/$", export)
            )
            return my_urls + urls
    
    Run Code Online (Sandbox Code Playgroud)

请享用 ;)

  • 对我来说,我不得不把 change_list.html 放在 APP/templates/admin/APP/MODEL/change_list.html (2认同)