如何在Django管理站点中添加添加用户按钮旁边的按钮 [英] How to add button next to Add User button in Django Admin Site

查看:213
本文介绍了如何在Django管理站点中添加添加用户按钮旁边的按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Django项目工作,我需要从Django管理员的用户屏幕中提取用户的列表。我将$ code>动作变量添加到我的Sample Class,以便在每个用户的id之前获取CheckBox。

  class SampleClass(admin.ModelAdmin):
actions = [make_published]

行动make_published已经定义。现在我想在添加用户按钮旁边添加另一个按钮,如图所示。 。但是我不知道如何使用新的模板来实现这一点。我想使用该按钮来打印选定的用户数据。谢谢,请指导我。

解决方案


  1. 在你的模板文件夹中创建一个模板:admin / YOUR_APP / YOUR_MODEL / change_list.html

  2. 将其放入该模板

      {%扩展admin / change_list.html%} 
    {%block object-tools-items%}

    {{block.super}}

    < li> ;
    < a href =export /class =grp-state-focus addlink>导出< / a>
    < / li>

    {%endblock%}


  3. YOUR_APP / admin.py 并使用注释

     从django保护它。 contrib.admin.views.decorators import staff_member_required 

    @staff_member_required
    def export(self,request):

    ...做你的东西...

    return HttpResponseRedirect(request.META [HTTP_REFERER])


  4. 将新的URL添加到 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


享受;)


I am working on Django Project where I need to extract the list of user to excel from the Django Admin's Users Screen. I added actions variable to my Sample Class for getting the CheckBox before each user's id.

class SampleClass(admin.ModelAdmin):
    actions =[make_published]

Action make_published is already defined. Now I want to append another button next to Add user button as shown in fig. . But I dont know how can I achieve this this with out using new template. I want to use that button for printing selected user data to excel. Thanks, please guide me.

解决方案

  1. Create a template in you template folder: admin/YOUR_APP/YOUR_MODEL/change_list.html
  2. Put this into that template

    {% extends "admin/change_list.html" %}
    {% block object-tools-items %}
    
        {{ block.super }}
    
        <li>
            <a href="export/" class="grp-state-focus addlink">Export</a>
        </li>
    
    {% endblock %}
    

  3. Create a view function in YOUR_APP/admin.py and secure it with annotation

    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"])
    

  4. Add new url into YOUR_APP/admin.py to url config for admin model

    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
    

Enjoy ;)

这篇关于如何在Django管理站点中添加添加用户按钮旁边的按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆