W przypadku administratora django, jak mogę dodać pole do modelu użytkownika i edytować je w admin?

Próbuję lepiej zrozumieć administratora django, a jednocześnie próbuję dodać jeszcze jedno pole do bieżącego administratora użytkownika. W models.py zrobiłem

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

iw admin.py mam następujące (z zestawami pól w zasadzie skopiowanymi z 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')

Problem polega na tym, że gdy to robię, pojawia się błąd:

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

Przeglądałem UserChangeForm, ale wygląda na to, że już poprawnie wciągnął użytkownika jako model. Nie jestem pewien, dlaczegonew_field brakuje w formularzu.

Dzięki

W odniesieniu do tego jest śmierdzący kod

Wiem, że jest to śmierdzący małpa łatający sposób, aby to zrobić, ale podklasa daje mi głównie problemyte powody .. jeśli mógłbym zrobić to tak, jak to opisano powyżej, byłbym szczęśliwy ... i może śmierdzący.

W odniesieniu do zalecanego sposobu

Jestem świadomy zalecanego sposobu tworzenia profilu użytkownika, ale w szczególnych sytuacjach nie widzę zalet tworzenia całej nowej tabeli i posiadania dodatkowego połączenia z bazą danych, gdy wszystko, co chcę przechowywać, jest dodatkowym trochę informacji, takich jakis_private lub niektóre takie. Jeśli przechowuję dużo więcej informacji, to zgadzam się, że preferowane jest skonfigurowanie profilu użytkownika.

questionAnswers(5)

yourAnswerToTheQuestion