Does anyone know how to conditionally set the fieldsets?
I use fieldsets in my admin panel to group/title my related fields. This works great in superuser. When I log in as staff, which has some fields excluded I get an error.
Caught KeyError while rendering: Key 'A' not found in Form
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 fieldset I get the the error:
models.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'sad('A','B'),('C','D'),)}) &nb开发者_JAVA技巧sp; 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) Bottom line is I want to maintain the grouping offered by fieldsets. Does anyone know how to conditionally set the fieldsets??You need to remove A
field from self.fieldsets
as well, when adding it to self.exclude
.
精彩评论