﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
19182	ModelAdmin filtering when list_filter = (('fieldname', ClassName),) throws SuspiciousOperation exception	Andrey Gusev	nobody	"Admin raises SuspiciousOperation on using complex query like {{{ghi__jkl__contains}}} in custom list filter described by {{{('fieldpath', ClassName )}}} syntax.

{{{#!python
class MyModelAdmin(ModelAdmin):
    ...
    list_filter = (
        'abc', 'def',
        ( 'ghi__jkl__contains', MyListFilter )
    )
    ...
}}}

Simple but ugly fix by replacing last line of {{{ModelAdmin.lookup_allowed}}} (around line 270 in contrib/admin/options.py):

{{{#!diff
        clean_lookup = LOOKUP_SEP.join(parts)
        --- return clean_lookup in self.list_filter or clean_lookup == self.date_hierarchy
        +++ return any([ ( clean_lookup == ( i[0] if isinstance(i, tuple) else i ) ) for i in self.list_filter ]) or clean_lookup == self.date_hierarchy
}}}
"	Bug	closed	contrib.admin	1.4	Normal	fixed	modeladmin lookup_allowed	r1chardj0n3s schillingt@… Paul Garner chris+django@…	Accepted	1	0	0	0	0	0
