Opened 5 years ago
Closed 5 years ago
#31756 closed Bug (duplicate)
Use get_list_filter on ModelAdmin.lookup_allowed
| Reported by: | Jakub Boukal | Owned by: | nobody |
|---|---|---|---|
| Component: | contrib.admin | Version: | 3.0 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Hi,
I have a model and admin panel like so
# models.py
class Foo(models.Model):
bar = models.CharField(max_length=50)
user = models.ForeignKey(User, on_delete=models.CASCADE)
# admin.py
@admin.register(models.Foo)
class FooAdmin(admin.ModelAdmin):
list_filter = ['bar']
def get_list_filter(self, request):
if request.user.is_superuser:
return self.list_filter + ['user__groups']
return self.list_filter
After creating Foo object and assigning user to group I've tried to filter on user's groups but I get HTTP:400 DisallowedModelAdminLookup.
I believe this is because BaseModelAdmin.lookup_allowed checks if the lookup exists in self.list_filter but doesn't call a hook self.get_list_filter
Note:
See TracTickets
for help on using tickets.
Duplicate of #22569.