From 6728ba94b357409b4b1a39817bf1d25a916029c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gunnlaugur=20=C3=9E=C3=B3r=20Briem?= Date: Wed, 29 May 2013 10:52:06 +0000 Subject: [PATCH 1/2] Fix TypeError in edit_permissions under Django 1.3 Call superclass `formfield_for_dbfield` so that it gets to do its stuff (including removing `request` from `kwargs`) fixes: #15 --- authority/admin.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/authority/admin.py b/authority/admin.py index c45aa6a..2b3d874 100644 --- a/authority/admin.py +++ b/authority/admin.py @@ -30,7 +30,6 @@ class PermissionInline(generic.GenericTabularInline): perm_choices = get_choices_for(self.parent_model) kwargs['label'] = _('permission') kwargs['widget'] = forms.Select(choices=perm_choices) - return db_field.formfield(**kwargs) return super(PermissionInline, self).formfield_for_dbfield(db_field, **kwargs) class ActionPermissionInline(PermissionInline): @@ -134,9 +133,8 @@ class PermissionAdmin(admin.ModelAdmin): if db_field.name in [f.fk_field for f in self.model._meta.virtual_fields if f.name in self.generic_fields]: for gfk in self.model._meta.virtual_fields: if gfk.fk_field == db_field.name: - return db_field.formfield( - widget=GenericForeignKeyRawIdWidget( - gfk.ct_field, self.admin_site._registry.keys())) + kwargs['widget'] = GenericForeignKeyRawIdWidget( + gfk.ct_field, self.admin_site._registry.keys()) return super(PermissionAdmin, self).formfield_for_dbfield(db_field, **kwargs) def queryset(self, request): From a88432cc2831736a897ce5374734f80e5ad3c8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gunnlaugur=20=C3=9E=C3=B3r=20Briem?= Date: Sat, 13 Jul 2013 00:34:23 +0000 Subject: [PATCH 2/2] Break out of for-loop when field found Matching the `return` statement that the previous commit replaced. --- authority/admin.py | 1 + 1 file changed, 1 insertion(+) diff --git a/authority/admin.py b/authority/admin.py index 2b3d874..89aa322 100644 --- a/authority/admin.py +++ b/authority/admin.py @@ -135,6 +135,7 @@ class PermissionAdmin(admin.ModelAdmin): if gfk.fk_field == db_field.name: kwargs['widget'] = GenericForeignKeyRawIdWidget( gfk.ct_field, self.admin_site._registry.keys()) + break return super(PermissionAdmin, self).formfield_for_dbfield(db_field, **kwargs) def queryset(self, request):