2012-06-05 2 views
1

Мне нужно создать пользовательских пользователей в моем приложении.Создание пользовательских пользователей в Django и настройка администратора

the example given in the doc В

class CustomUser(models.Model): 
    user = models.OneToOneField(User) 
    #custom fields 

пользователь должен существовать перед созданием CustomUser.

Что я хочу сделать, это автоматически создать пользователя при создании CustomUser.

В администраторе CustomUser (видимо только суперпользователем), я хотел бы иметь только пользовательские поля и несколько полей из модели User, а также некоторую форму, чтобы позволить суперпользователю изменять пароль для существующих пример.

Кто-нибудь может помочь?

+0

см эту ссылку http://stackoverflow.com/questions/44109/extending-the-user-model-with-custom-fields-in-django – irshad

ответ

3

Первая часть вашего вопроса проста, вы можете использовать сигнал:

def create_custom_user(sender, instance, created, **kwargs): 
    if created: 
     custom_user, created = CustomUser.objects.get_or_create(user=instance) 

post_save.connect(create_custom_user, sender=User) 

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

django docs: list_display

+0

Но если я хорошо понимаю, это создает пользовательский пользователь при создании пользователя. Я хочу, чтобы все было наоборот. Я хочу иметь администратора для создания CustomUser, который автоматически создает пользователя. – jul

+0

Затем сделайте это наоборот и установите поле пользователя пустым = True и null = True –

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