From aa6725cb07049fa2dd6da1a8f7923ae74a851d96 Mon Sep 17 00:00:00 2001 From: Christopher Long Date: Mon, 18 Sep 2006 14:21:47 +0000 Subject: [PATCH] [per-object-permissions] Fixes another problem when using one-to-one relations and POPs git-svn-id: http://code.djangoproject.com/svn/django/branches/per-object-permissions@3769 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/admin/views/main.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index dab5270d6f..f387de60df 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -692,9 +692,12 @@ class ChangeList(object): def get_query_set(self): if (not self.opts.admin.show_all_rows) and self.opts.row_level_permissions and (not self.user.has_perm(self.opts.app_label + "."+self.opts.get_change_permission())): from django.contrib.auth.models import RowLevelPermission - qs = self.manager.filter(id__in=RowLevelPermission.objects.get_model_list(self.user, + model_id_name = self.opts.pk.attname + param_name = model_id_name.replace("_", "__")+"__in" + param = {param_name:RowLevelPermission.objects.get_model_list(self.user, self.model, - self.opts.get_change_permission())) + self.opts.get_change_permission())} + qs = self.manager.filter(**param) else: qs = self.manager.get_query_set() lookup_params = self.params.copy() # a dictionary of the query string