开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜