{{{#!python
class Somebody(models.Model):
user = models.OneToOneField(AUTH_USER_MODEL)
class Profile(models.Model): # we want an admin for this and filter on
related data!
who = models.OneToOneField(Somebody)
class ClientInfo(models.Model):
who = models.OneToOneField(Somebody)
filter_by_me_please = models.CharField(db_index=True, max_length=20,
blank=True)
}}}
and this profile admin:
{{{#!python
class ProfileAdmin(admin.ModelAdmin):
list_filter = ('who__clientinfo__filter_by_me_please', )
admin.site.register(Profile, ProfileAdmin)
}}}
I get this error
{{{
DisallowedModelAdminLookup at /admin/foo/profile/
Filtering by who__clientinfo__filter_by_me_please not allowed
}}}
on opening
http://localhost:8000/admin/foo/profile/?who__clientinfo__filter_by_me_please=yay
The 3 lookup levels seem to be important to reproduce this.
--
Ticket URL: <https://code.djangoproject.com/ticket/27356>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* stage: Unreviewed => Accepted
* needs_tests: => 0
* needs_docs: => 0
Comment:
Reproduced at a4e9e834e3dfc8d5a024a78c765f193105d41a48.
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:1>
* owner: nobody => felixxm
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:2>
* has_patch: 0 => 1
Comment:
[https://github.com/django/django/pull/7406 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:3>
* owner: felixxm => Tobias McNulty
Comment:
Reviewing at DUTH sprint.
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:4>
* owner: Tobias McNulty => (none)
* status: assigned => new
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:5>
* owner: (none) => felixxm
* needs_better_patch: 0 => 1
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:6>
* needs_better_patch: 1 => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:7>
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:8>
* status: assigned => new
* owner: felixxm => (none)
* has_patch: 1 => 0
* needs_better_patch: 1 => 0
Comment:
I don't have idea how to fix this without breaking
`admin_views.tests.AdminViewBasicTest.test_disallowed_filtering`.
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:9>
* Attachment "djtest.zip" added.
* cc: desecho@… (added)
* version: 1.10 => master
Comment:
I added a project to easily reproduce a problem. Admin credentials -
admin/iaN4viph8653 .
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:10>
* Attachment "djtest.zip" added.
* has_patch: 0 => 1
Comment:
I added a [https://github.com/django/django/pull/7792 PR]
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:11>
* status: new => closed
* owner: (none) => Tim Graham <timograham@…>
* resolution: => fixed
Comment:
In [changeset:"b27166b7690fbe5d695b828361a74699ddd2678a" b27166b]:
{{{
#!CommitTicketReference repository=""
revision="b27166b7690fbe5d695b828361a74699ddd2678a"
Fixed #27356 -- Fixed ModelAdmin.lookup_allowed() for some nested
relations.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/27356#comment:12>