Sunday, August 1, 2010

admin panel fieldsets for different type of users?

I use formset in my admin panel to group/title my related fields.
This works great except when I go to exclude some fields for lesser
users.

In the simple example below if i'm a super user all works great.
If i log in as a staff user thus the code exclude A formset I get the
following error:

Caught KeyError while rendering: Key 'A' not found in Form

I don't mind having a conditional formset but I don't know how to do
that based on the type of user. Does anyone know how to solve this?

model.py
------------
class Cars(models.Model):
A = models.CharField('A', ...)
B = models....
C = models...
D = models...


admin.py
------------
class CarsAdmin(admin.ModelAdmin):
fieldsets = (_('first group'},{'fields':(('A','B'),('C','D'),)})
def get_form(self,request,obj=None, **kwargs):
self.exclude = []
if not request.user.is_superuser:
self.exclude.append('A')
return super(CarAdmin,self).get_form(request, obj=None, **kwargs)

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment