Python Django:管理操作选择

Python Django:管理操作选择,python,django,django-admin,Python,Django,Django Admin,我一直在上下寻找答案,但遗憾的是,没有 我试图在django admin下拉列表中添加操作(其中,Delete Selectedis),但在添加一些操作后,我添加的操作也显示在其他模型上,我在中遵循了示例,但没有成功 如何限制仅添加到特定模型的操作 提前谢谢 (我使用的是python 2.7、django 1.8.2) 编辑 我通过以下方式按用户类型(超级用户或非超级用户)筛选选择: 在看到这个AdminModel类之后,我仍然不确定您是否对所有模型使用了相同的类 @admin.site.reg

我一直在上下寻找答案,但遗憾的是,没有

我试图在django admin下拉列表中添加操作(其中,
Delete Selected
is),但在添加一些操作后,我添加的操作也显示在其他模型上,我在中遵循了示例,但没有成功

如何限制仅添加到特定模型的操作

提前谢谢

(我使用的是python 2.7、django 1.8.2)

编辑

我通过以下方式按用户类型(超级用户或非超级用户)筛选选择:


在看到这个
AdminModel
类之后,我仍然不确定您是否对所有模型使用了相同的类

@admin.site.register(ModelOne, ModelTwo)
class AdminModel(admin.ModelAdmin):

    def get_actions(self, request):
        actions = super(AdminModel, self).get_actions(request)
        if not request.user.is_superuser:
            if 'delete_selected' in actions:
                del actions['delete_selected']
        else:
            self.actions.append(make_published)
            self.actions.append(make_unpublished)
        return actions
如果只需要特定模型的操作,只需创建两个独立的
ModelAdmin

@admin.site.register(ModelOne)
class AdminModel(admin.ModelAdmin):

    def get_actions(self, request):
        actions = super(AdminModel, self).get_actions(request)
        if not request.user.is_superuser:
            if 'delete_selected' in actions:
                del actions['delete_selected']
        else:
            self.actions.append(make_published)
            self.actions.append(make_unpublished)
        return actions


@admin.site.register(ModelTwo)
class NoActionsModel(admin.ModelAdmin):
    pass
此外,在
ModelAdmin
上,您应该能够使用
has_delete_permission
()功能阻止除超级用户以外的所有用户


您是否可以展开上面的代码以显示已编辑的
AdminModel
类的其余部分,是否也可以使用
queryset.save()
而不是
fire\u employee
中的
.update()
?您可以针对queryset:obj.APP\u STATUS=8中的obj的每个模型
,循环查询集调用.save();obj.save()
这正是我所做的,当我访问管理中的其他模型时问题就开始了。选项仍然存在。您是否有多个
管理站点。注册
调用<代码>管理站点注册(雇用申请人,人力资源部)
admin.site.register(other_model,hrd)
我发现了我的代码中的错误,我需要在
ModelAdmin
中声明
actions=[]
,因为没有它,它会将操作添加到所有模型中
@admin.site.register(ModelOne)
class AdminModel(admin.ModelAdmin):

    def get_actions(self, request):
        actions = super(AdminModel, self).get_actions(request)
        if not request.user.is_superuser:
            if 'delete_selected' in actions:
                del actions['delete_selected']
        else:
            self.actions.append(make_published)
            self.actions.append(make_unpublished)
        return actions


@admin.site.register(ModelTwo)
class NoActionsModel(admin.ModelAdmin):
    pass
class AdminModel(admin.ModelAdmin):
    def has_delete_permission(self, request, obj=None):
        return request.user.is_superuser