2013-10-12 6 views
1

Я новичок в django, я слежу за видео-лекциями. После выполнения точно в соответствии с инструкциями я не могу добавить дополнительный файл интерфейса администратора. Я прикрепляю modes.py и admin.py для проверки. Пожалуйста, помогите мнеИзменение пользовательского интерфейса администратора django

models.py

class UserProfile(models.Model): 
    user = models.OneToOneField(User, unique=True) 
    #Extra values 
    bio = models.TextField(null=True) 

    def __unicode__(self): 
     return '%s Profile' % self.user 

def create_profile(sender, instance, created, **kwargs): 
    if created: 
     profile, created = UserProfile.objects.get_or_create(user=instance) 

from django.db.models.signals import post_save 

post_save.connect(create_profile, sender=User) 

Admin.py

class UserProfileInLIne(admin.StackedInline): 
    model = UserProfile 
    can_delete = False 

class UserProfileAdmin(UserAdmin): 
    inline = (UserProfileInLIne,) 

admin.site.unregister(User) 
admin.site.register(User, UserProfileAdmin) 
+0

Привет, Ваш код выглядит правильно, но, возможно, вы забыли зарегистрировать свое приложение «Профиль»? – dydek

+0

Эй, спасибо за ответ, я зарегистрировал приложение, проблема в том, что когда я открываю страницу администрирования пользователя, био не появляется. – user2873552

+0

Привет, Я получил ответ после проверки несколько раз. its Typo error Использовал «inline» Вместо «inlines» спасибо – user2873552

ответ

1

Я думаю, что проблема в том, что вы используете inline вместо inlines. Здесь у вас есть ссылка на исходный код django ModelAdmin class.

Надеюсь, это поможет.

+0

Спасибо, я написал комментарий, прежде чем проверять ваш ответ, пожалуйста, не возражайте – user2873552

1

почему бы не только спасти Ваш сам труд и использовать пользовательскую модель пользователя?

> django docs on custom user model

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

# settings.py 
AUTH_USER_MODEL = 'yourapp.UserProfile' 

# models.py 
class UserProfile(AbstractBaseUser): 
    #Extra values 
    bio = models.TextField(null=True) 


# admin.py 
admin.site.register(UserProfile) 

и в другом месте вы хотите использовать пользовательский экземпляр (то есть. Другие модели, просмотры) просто использовать settings.AUTH_USER_MODEL

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