У меня мало сомнений, что это будет действительно глупый вопрос. Но я действительно не могу понять это, поэтому я все равно спрошу.
В /svsite/src/svsite/member/models/svuser.py (немного необычное расположение, см. Этот вопрос Поместите формы администратора Django в разные файлы ).
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin, UserChangeForm as DjangoUserChangeForm
from svsite.member.models.svuser import svUser
class UserChangeForm(DjangoUserChangeForm):
class Meta:
pass
class svUserAdmin(UserAdmin):
form = UserChangeForm
readonly_fields = ('date_joined', 'last_login', 'last_update', )
fieldsets = \
(
(
'Login',
{
'classes': ('collapse', ),
'fields':
(
'username',
'password',
'is_active',
'email_verified',
'awaiting_user_confirmation',
),
}
),
(
'Personal info',
{
'fields':
(
'first_name',
'middle_name',
'last_name',
),
}
),
)
[...]
В модели, которую я имею по адресу /svsite/src/svsite/member/admin/svuser.py:
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User, UserManager
class svUser(User):
email_verified = models.BooleanField(default = False)
awaiting_user_confirmation = models.BooleanField(
_('approved by board'), default = False, help_text=_('This user\'s identity was confirmed by the board or another authority.'))
[...]
Я получаю ошибку:
'svUserAdmin.fieldsets[0][1]['fields']' refers to field 'password' that is missing from the form.
Если я комментирую пароль, ошибка переходит к следующему полю. Независимо, если это поле модели пользователя по умолчанию или поле, которое я добавил в svUser, унаследованном от пользователя. Очень удивительно (для меня), имя пользователя, кажется, единственное поле, которое работает, без проблем в этом.
Я нашел этот вопрос Django ModelAdmin - fieldsets ... поле 'date' отсутствует в форме , и хотя поля не являются auto_now, я добавил их в readonly_fields, и ошибка исчезла. Однако очевидно, что сделать все поля доступными только для чтения - не вариант.
Возможно, это что-то глупое, на самом деле не связанное с кодом, но я действительно не могу его найти, мне кажется, это действительно должно работать. Любая помощь с благодарностью!