Python 如何在管理中过滤对象?

Python 如何在管理中过滤对象?,python,django,wagtail,Python,Django,Wagtail,如何筛选每个页面的wagtail管理页面中显示的对象 模型 在django中,这个问题可以通过重写模型的Admin类来解决,在wagtail中,我不知道这是怎么可能的 假设您讨论的是非页面对象,那么有两个选项可以在管理界面中公开它们:和 后者与Django的ModelAdmin非常相似,但不同,您应该能够覆盖get_queryset来过滤对象,就像您使用Django时一样 例如,正确设置应用程序后,您可以执行以下操作: # models.py class Person(django.db.mod

如何筛选每个页面的wagtail管理页面中显示的对象 模型 在django中,这个问题可以通过重写模型的Admin类来解决,在wagtail中,我不知道这是怎么可能的


假设您讨论的是非页面对象,那么有两个选项可以在管理界面中公开它们:和

后者与Django的ModelAdmin非常相似,但不同,您应该能够覆盖get_queryset来过滤对象,就像您使用Django时一样

例如,正确设置应用程序后,您可以执行以下操作:

# models.py
class Person(django.db.models.Model):
  type = django.db.models.CharField(max_length=20, choices=(('student', 'Student'), ('teacher', 'Teacher')))
  # ...

# wagtail_hooks.py
class StudentAdmin(wagtail.contrib.modeladmin.options.ModelAdmin):
  model = my_app.models.Person

  def get_queryset(self, request):
    qs = super(StudentAdmin, self).get_queryset(request)
    return qs.filter(type='student')

wagtail.contrib.modeladmin.options.modeladmin_register(MyPageModelAdmin)