We've faced with same and other problems linked to the same issue.
The idea is that DJango caches every object that's used in Admin.
So, when you do exclude field, you should get it back to form in other
cases.

--
if not request.user.is_superuser:
    self.exclude.append('A')
else:
    self.exclude.pop('A')
--

The other universal solution is to reload admin class(es) everytime
request is being processed.
This will decrease speed, but no need to reenable & repopulate all
data in admin models.

Andrey

> 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-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to