Кто-нибудь знает, как условно установить наборы полей?

Я использую наборы полей в своей панели администратора для группировки/названия связанных полей. Это отлично работает в суперпользователе. Когда я вхожу в систему как сотрудник, в котором исключены некоторые поля, я получаю сообщение об ошибке.

Обнаружена ошибка KeyError при рендеринге: ключ "A" не найден в форме

В простом примере ниже, если я суперпользователь, все отлично работает. Если я вхожу в систему как штатный пользователь, таким образом, код исключает A fieldset, я получаю сообщение об ошибке:

модели.ру:

class Cars(models.Model):
A = models.CharField('A', ...)
B = models....
C = models...
D = модели...

admin.py:

class CarsAdmin(admin.ModelAdmin):
fieldsets = (_('first group'},{'fields'sad('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)

Суть в том, что я хочу сохранить группировку, предлагаемую наборы полей.

Кто-нибудь знает, как условно установить наборы полей??


person condor    schedule 01.08.2010    source источник
comment
Пожалуйста, отформатируйте свой код и некоторые теги, такие как django, python и т. д.   -  person dmedvinsky    schedule 01.08.2010


Ответы (1)


Вам также необходимо удалить поле A из self.fieldsets при добавлении его в self.exclude.

person dmedvinsky    schedule 01.08.2010