将自定义操作添加到Django管理主页?

时间:2015-10-28 22:18:00

标签: python django django-admin

我希望为django可重复使用的应用添加custom action我设计,但不是特定于单个模型,我想在上面添加一个动作的链接管理站点的首页。

是否可以轻松地在Django中向主页添加链接或站点范围的操作,还是重写模板?

2 个答案:

答案 0 :(得分:2)

  

是否可以轻松地将链接或站点范围的操作添加到Django的主页...

链接是,请注意确保站点范围内的操作意味着什么。

  

还是覆盖模板的问题?

是的,这是覆盖模板(AFAIK)的问题。但简单而重要的模板并不是相互排斥的。

对于任何到这里的人,因为他们只是想要简单的标准方式实际上#34;添加自定义动作[即链接]到Django主页" (在django 1.9中测试):

鉴于一个名为“myproj”的django项目。你当前的工作目录是项目目录:

mkdir -p myproj/templates/admin/
edit myproj/templates/admin/index.html

index.html模板中的以下内容开始,您的网站将保持不变。然后小心翼翼地将链接放在这些块中以满足您的需求。

{% extends "admin/index.html" %}
{% block content %}
{{ block.super }}
{% endblock %}

{% block sidebar %}
{{ block.super }}
{% endblock %}

答案 1 :(得分:-1)

创建自定义操作方法并调用操作列表。

 class YourCustomClass(admin.ModelAdmin):
        model: YourModel
        actions = ['make_active', 'make_inactive',]

        def make_active(self, request, queryset):
            '''make_active from action'''
            queryset.update(is_active=True)
        make_active.short_description = "Make selected users as Active"

        def make_inactive(self, request, queryset):
            '''make_inactive from action'''
            queryset.update(is_active=False)
        make_inactive.short_description = "Make selected users as Inactive"