2015-06-29 3 views
0

Когда я продлить Django User с помощью OneToOneField создать Manager, форму, чтобы создать в Django администратора Manager имеет только поля для имени пользователя и пароля.Джанго: Расширение «User» через OneToOneField - доступ first_name

class Manager(models.Model): 
    """ 
    Users who need to login to manage the listing of a Outlet 
    are represented by this model. 
    """ 
    manager = models.OneToOneField(User) 
    internal_notes = models.TextField(blank=True) 

    def __unicode__(self): 
     return self.manager.username 

Что такое правильный способ добавить другие встроенные в User областях, как first_name и т.д. моей Manager модели?

+0

Посмотрите на этот ответ здесь, в нем объясняется лучший способ настройки и расширения пользователя. http://stackoverflow.com/questions/19433630/how-to-use-user-as-foreign-key-in-django-1-5/19434182#19434182 –

+0

такие поля уже предоставлены классом пользователя Django. Также тип пользователя уже является атрибутом, если я не ошибаюсь, поэтому вы можете использовать его. В случае, просто добавьте поля, которые требуются вашему классу (например, менеджер) – Pynchia

ответ

0

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

Ваш класс Manager не должен определять эти поля, так как они являются атрибутами класса User, к которому вы обращаетесь по взаимно однозначному отношению.

+0

. Я ожидал, что форма для создания Диспетчера отобразит все поля, содержащиеся в Менеджере, которые будут содержать все те, которые содержались пользователем; на самом деле я все еще озадачен тем, почему он отображает только эти 3 поля. – Pranab

+0

Я не понимаю, какие три поля вы имеете в виду, на самом деле. Форма «Менеджер» отображает только поля, которые содержит Менеджер - пользователь (который по какой-то причине вы назвали «управляющим») и «internal_notes». Все остальные поля находятся на самом пользователе. И в первоначальной форме для создания пользователя отображаются только имя пользователя и пароль, на этом этапе он даже не показывает электронную почту. –

+0

На самом деле мне нужно сначала отменить регистрацию пользователя, чтобы он работал правильно. Зачем? admin.site.unregister (Пользователь) admin.site.register (Пользователь) – Pranab

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