我正在编写一个非常普通的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
和enable
中没有使用disable
,这些方法可以是函数(或staticmethod)
添加@staticmethod
装饰器会导致django出错。
AttributeError:'staticmethod'对象没有属性'short_description'
我的问题是,如何使django和pylint都快乐?
答案 0 :(得分:0)
我也找到了这个问题,但是,我读了Django代码。您可以阅读django.contrib.admin.options#1270,我们定义的admin func不是类的“真实”方法,django代码使用{{1 }}来获取您的函数,然后使用self.get_actions(request)[action][0]
来运行它,因此,您不能使用func(self, request, queryset)
来解决pylint警告。