summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2008-08-29 16:13:17 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2008-08-29 16:13:17 +0000
commit15416a90163d03e8b2253a1a52d3480c79744b9f (patch)
tree8c82d066abec159860e4c99b102e7e348a5f4867
parent21928f2ba01c5411c57720eec82f7ad8658ed733 (diff)
Fixed #7881: Support `__in` lookups in `limit_choices_to` and `raw_id_admin`. Thanks, jamesturk.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8700 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/admin/views/main.py4
-rw-r--r--django/contrib/admin/widgets.py2
2 files changed, 5 insertions, 1 deletions
diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py
index 50b015352d..0a5ab372ec 100644
--- a/django/contrib/admin/views/main.py
+++ b/django/contrib/admin/views/main.py
@@ -179,6 +179,10 @@ class ChangeList(object):
del lookup_params[key]
lookup_params[smart_str(key)] = value
+ # if key ends with __in, split parameter into separate values
+ if key.endswith('__in'):
+ lookup_params[key] = value.split(',')
+
# Apply lookup parameters from the query string.
qs = qs.filter(**lookup_params)
diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py
index aaf1caafe7..d3deada0ed 100644
--- a/django/contrib/admin/widgets.py
+++ b/django/contrib/admin/widgets.py
@@ -102,7 +102,7 @@ class ForeignKeyRawIdWidget(forms.TextInput):
def render(self, name, value, attrs=None):
related_url = '../../../%s/%s/' % (self.rel.to._meta.app_label, self.rel.to._meta.object_name.lower())
if self.rel.limit_choices_to:
- url = '?' + '&amp;'.join(['%s=%s' % (k, v) for k, v in self.rel.limit_choices_to.items()])
+ url = '?' + '&amp;'.join(['%s=%s' % (k, ','.join(v)) for k, v in self.rel.limit_choices_to.items()])
else:
url = ''
if not attrs.has_key('class'):