"静态方法"对象没有属性"short_description"



我正在编写一个非常普通的django管理类,它具有如下自定义操作:

class DeviceAdmin(admin.ModelAdmin):
    actions = ("enable", "disable")
    def enable(self, request, queryset):
        queryset.update(active=True)
    enable.short_description = _("Enable selected items")
    def disable(self, request, queryset):
        queryset.update(active=False)
    disable.short_description = _("Disable selected items")

现在pylint抱怨self没有在enabledisable中使用,并且这些方法可以是函数(或静态方法)

然而,添加@staticmethod装饰器会导致django出现错误。

AttributeError:"staticmethod"对象没有属性"shortdescription"

我的问题是,我该如何让詹戈和皮林都开心?

我也发现了这个问题,但是,我读了django代码。你可以阅读django.contrib.admin.options#1270,我们定义了一个admin函数不是类的"真实"方法,django代码使用self.get_actions(request)[action][0]来获取你的函数,然后使用func(self, request, queryset)来运行它,所以,你不能使用@staticmethod来解决pylint警告。

相关内容

最新更新