diff options
| author | Andrey Kuzmin <jack.cvr@gmail.com> | 2015-10-25 22:15:37 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-11-12 19:50:54 -0500 |
| commit | 815f4d206dfea41bdff167283c2cac43a71524ac (patch) | |
| tree | b48d53496c534c87139cb8d9f34d9670d7710a2f /django | |
| parent | 7624fdb9f8ea4cbff407436606998f572898038b (diff) | |
Fixed #25606 -- Added support for "__" lookup in RelatedOnlyFieldList
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/filters.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/django/contrib/admin/filters.py b/django/contrib/admin/filters.py index f7c520a43a..4216f2ea64 100644 --- a/django/contrib/admin/filters.py +++ b/django/contrib/admin/filters.py @@ -166,9 +166,9 @@ class RelatedFieldListFilter(FieldListFilter): self.lookup_kwarg_isnull = '%s__isnull' % field_path self.lookup_val = request.GET.get(self.lookup_kwarg) self.lookup_val_isnull = request.GET.get(self.lookup_kwarg_isnull) - self.lookup_choices = self.field_choices(field, request, model_admin) super(RelatedFieldListFilter, self).__init__( field, request, params, model, model_admin, field_path) + self.lookup_choices = self.field_choices(field, request, model_admin) if hasattr(field, 'verbose_name'): self.lookup_title = field.verbose_name else: @@ -412,5 +412,5 @@ FieldListFilter.register(lambda f: True, AllValuesFieldListFilter) class RelatedOnlyFieldListFilter(RelatedFieldListFilter): def field_choices(self, field, request, model_admin): - limit_choices_to = {'pk__in': set(model_admin.get_queryset(request).values_list(field.name, flat=True))} - return field.get_choices(include_blank=False, limit_choices_to=limit_choices_to) + pk_qs = model_admin.get_queryset(request).distinct().values_list('%s__pk' % self.field_path, flat=True) + return field.get_choices(include_blank=False, limit_choices_to={'pk__in': pk_qs}) |
