2013-02-24 1 views
0

я добавил поле в моей модель пользователя называется дополнительным, следующим образом: -Не может увидеть расширенную область модели пользователя в интерфейсе администратора

class ExtendedUser(models.Model): 
user = models.OneToOneField(User) 
extra = models.CharField(max_length=30, null=True) 

# when a user is created, make sure an ExtendedUser is created too 
def create_extended_user(sender, instance, created, *args, **kwargs): 
    if created: 
     extended_user = ExtendedUser(user=instance) 
     extended_user.save() 
post_save.connect(create_extended_user, sender=User) 

В моем admin.py, я стараюсь, чтобы убедиться, что я могу изменить это дополнительное поле, когда я редактирую пользователь: -

class ExtendedUserInline(admin.TabularInline): 
    model = ExtendedUser 
    fk_name = 'user' 
    max_num = 1 

class ExtendedUserAdmin(UserAdmin): 
    inlines = [ExtendedUserInline] 

admin.site.unregister(User) 
admin.site.register(User, ExtendedUserAdmin) 

Однако, я не могу видеть дополнительное поле на странице администратора для пользователя.

Что я сделал не так?

+0

Нет, это тоже не работает. – bodger

+0

Добавление дополнительной запятой не имеет значения. – bodger

ответ

0

Вы перезапустили сервер разработки с момента редактирования admin.py?

См. Также this very similar thread.

+0

Yup, перезапустил сервер dev - не имеет значения. – bodger

0

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

class ExtendedUser(models.Model): 
user = models.OneToOneField(User) 
extra = models.CharField(max_length=30, null=True) 

# when a user is created, make sure an ExtendedUser is created too 
@receiver(post_save, sender=User)  
def create_extended_user(sender, instance, created, *args, **kwargs): 
     if created: 
      extended_user = ExtendedUser(user=instance) 
      extended_user.save() 

Обновлено Ответ:

Вам нужно установить AUTH_PROFILE_MODULE = 'app_name.ExtendedUser'

Here's a post что сделал почти так же, как и вы. Некоторые из комментариев ниже заслуживают внимания.

+0

К сожалению, это не работает. Несомненно, имя пользователя AdAdmin здесь не так? Тот, который я использовал, был ExtendedUserAdmin - поскольку я расширил обычный UserAdmin. – bodger

+0

Вы правы. Ответ удален. Попытайтесь воспроизвести свой код. – chirinosky

+0

Обновленный ответ. Надеюсь это поможет. – chirinosky

Смежные вопросы