среда, 14 июля 2010 г.

Django CustomUser change password

Создал класс, наследующий класс User, чтобы добавить для пользователей новые поля. Но при попытке изменить пароль в админке получаю следующее сообщение:
invalid literal for int() with base 10: '1/password'
Вот класс юзера
class PosterUser(User):
    company_name = models.CharField(max_length=255, verbose_name='Компания')
    twitter_account = models.CharField(max_length=150, verbose_name='Твиттер')
    objects = UserManager()
    class Meta:
        verbose_name_plural = "Пользователи"
        verbose_name = "Пользователь"
Вот класс АдминЮзера
class PosterUserAdmin(admin.ModelAdmin):
    list_display = ('username', 'is_staff', 'is_active', 'company_name')
Делал я по инструкции http://djbook.ru/text/profile_inheritance/ однако, там класс для админки создается как дочерний класс UserAdmin. В таком случае нет возможности правки новых полей в админке django. Если же сделать как у меня (admin.ModelAdmin) все прекрасно работает, за исключением смены пароля.

Т.е. в итоге, если
class PosterUserAdmin(admin.ModelAdmin):
    list_display = ('username', 'is_staff', 'is_active', 'company_name')
тогда можно править новые поля в админке но смена пароля вызывает ошибку. А если
class PosterUserAdmin(UserAdmin):
    list_display = ('username', 'is_staff', 'is_active', 'company_name')
то новые поля из админки пропадают, но смена пароля работает нормально.

Че делать уже и не знаю… гугление не помогает… пока.

Комментариев нет:

Отправить комментарий