Кто-нибудь знает, как условно установить поля? - PullRequest
0 голосов
/ 01 августа 2010

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

Поймано KeyError при рендеринге: Ключ 'A' не найден в форме

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

models.py:

Класс Cars (models.Model):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 ??

1 Ответ

0 голосов
/ 01 августа 2010

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

...