Python 有没有一种方法可以自动将管理器方法或类级方法添加到Django中的管理页面?
假设我有一个类人,它有一堆管理器方法和类级方法。我在管理页面中启用了Person,但我正在尝试找到一种方法,使所有这些管理器/类级别的方法也自动显示在管理页面上Python 有没有一种方法可以自动将管理器方法或类级方法添加到Django中的管理页面?,python,django,django-models,django-admin,django-managers,Python,Django,Django Models,Django Admin,Django Managers,假设我有一个类人,它有一堆管理器方法和类级方法。我在管理页面中启用了Person,但我正在尝试找到一种方法,使所有这些管理器/类级别的方法也自动显示在管理页面上 class PersonManager(models.Manager): def get_status(self, *args, **kwargs): # code to get the status of selected persons class Person(models.Model): o
class PersonManager(models.Manager):
def get_status(self, *args, **kwargs):
# code to get the status of selected persons
class Person(models.Model):
objects = PersonManager()
name = models.CharField(max_length=100)
def email_person(self, email):
#code to email the specific person
例如,当我选择一个实例后转到管理页面上的详细视图时,email_person方法就会出现。或者可以在列出所有实例的管理页面中调用其中一个管理器方法,我可以选择希望在哪些实例上运行管理器方法。有这样的办法吗?我发现一篇文章手动演示了如何实现这一点,但我想知道是否有一个现有的解决方案/应用程序可以默认做到这一点 您可以通过在ModelAdmin中指定它们来添加到列表视图:
将其添加到细节视图需要更多的工作,但我发现这种方法通常是足够的
class PersonAdmin(admin.ModelAdmin):
actions = ['some_action']
def some_action(self, queryset, request):
queryset.some_action()
some_action.short_description = "Do some action on selected persons"