Для администратора django, как мне добавить поле в модель User и сделать его редактируемым в admin?

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

User.add_to_class('new_field', models.BooleanField(default=False))

и в admin.py я получил следующее (наборы полей в основном просто скопированы из django / contrib / auth / admin.py)

class AdjUserAdmin(UserAdmin):
  list_display  = UserAdmin.list_display + ('new_field',)
  list_filter   = UserAdmin.list_filter + ('new_field',)

  fieldsets = UserAdmin.fieldsets
  fieldsets[1][1]['fields'] = ('first_name','last_name','email','new_field')

Проблема в том, что, когда я делаю это, я получаю ошибку:

AdjUserAdmin.fieldsets[4][1]['fields']' refers to field 'new_field' that is missing from the form.

Я посмотрел на UserChangeForm, но, похоже, он уже правильно вводит пользователя в качестве модели. Я не уверен, почемуnew_field отсутствует в форме.

Спасибо

In regards to this being smelly code

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

In regards to the recommended way

Мне известен рекомендуемый способ создания профиля пользователя, но в определенных ситуациях я не вижу смысла в создании всей новой таблицы и дополнительном вызове в базу данных, когда все, что я хочу сохранить, - это дополнительный немного информации, такой какis_private или что-то подобное. Если я храню больше информации, то я согласен, что настройка профиля пользователя предпочтительнее.

Ответы на вопрос(5)

Ваш ответ на вопрос