我正在尝试使用查询集找到一种在Django Admin中过滤掉对象行的方法。
e.g. Person.objects.filter(Q(name='John')|Q(surname='Doe'))
我发现很难搞清楚。
有什么想法吗?
答案 0 :(得分:0)
您可以通过覆盖modeladmin实例上的queryset()方法来实现此目的。见http://code.djangoproject.com/browser/django/trunk/django/contrib/admin/options.py?rev=15347#L196
# untested code
class MyModelAdmin(admin.ModelAdmin):
def queryset(self, request):
qs = super(MyModelAdmin, self).queryset(request)
return qs.filter(Q(name='John') | Q(surname='Doe'))
这只会影响使用该ModelAdmin注册的模型的结果,但您可以将其作为其他ModelAdmin类的起点继承,以便保持DRY。
我不是说这是个好主意。