Кто-нибудь знает, как условно установить наборы полей?
Я использую наборы полей в моей панели администратора для группировки / заголовка моих связанных полей. Это прекрасно работает в суперпользователе. Когда я вхожу в систему как персонал, за исключением некоторых полей, я получаю сообщение об ошибке.
Поймано KeyError во время рендеринга: ключ 'A' не найден в форме
В простом примере ниже, если я супер пользователь, все отлично работает. Если я вхожу в систему как штатный пользователь, таким образом, код исключает A fieldset, я получаю ошибку:
models.py:
Автомобили класса (модели. Модель):
A = models.CharField ('A',...)
B = модели....
C = модели...
D = модели...
admin.py:
Класс CarsAdmin (admin.ModelAdmin):
fieldsets = (_ ('первая группа'}, {'fields'sad (' A ',' B '), (' C ',' D '),)})
def get_form (self, request,obj= None, **kwargs):
self.exclude = []
если нет request.user.is_superuser:
self.exclude.append ('А')
return super (CarAdmin, self).get_form (запрос,obj= Нет, **kwargs)
В итоге я хочу сохранить группировку, предлагаемую fieldsets.
Кто-нибудь знает, как условно установить fieldsets??
1 ответ
Вы должны удалить A
поле из self.fieldsets
а также при добавлении его в self.exclude
,