gpt4 book ai didi

django - 'staticmethod' 对象没有属性 'short_description'

转载 作者:行者123 更新时间:2023-12-05 07:49:42 25 4
gpt4 key购买 nike

我正在写一个非常普通的 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' object has no attribute 'short_description'

我的问题是,如何让 django 和 pylint 都开心?

最佳答案

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

关于django - 'staticmethod' 对象没有属性 'short_description',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37019978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com