我如何过滤每个wagtail管理页面中显示的对象 模型? 在django中,这个问题可以通过重写Admin类的模型来解决,但我不知道它是如何可能的。
答案 0 :(得分:1)
假设您在谈论非页面对象,您可以通过两种方式在管理界面中公开它们:snippets和ModelAdmin。
后者与Django的ModelAdmin非常相似(但不是相同的),你应该能够覆盖get_queryset
来过滤像你习惯使用的Django一样的对象。 / p>
例如,在正确设置ModelAdmin应用后,您可以执行以下操作:
# 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)