2015-06-29 74 views
0

当使用OneToOneField创建Manager,形式创造Django管理一个Manager只有用户名和密码字段我延长Django的UserDjango的:通过扩展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 

什么是添加正道其他内置样first_nameUser领域我Manager模式?

+0

看看这个答案在这里,它解释了定制和扩展用户的最佳方式。 http://stackoverflow.com/questions/19433630/how-to-use-user-as-foreign-key-in-django-1-5/19434182#19434182 –

+0

这些字段已由Django的User类提供。另外,如果我没有弄错,用户的类型已经是属性了,所以你可能想要使用它。万一,只需将您需要的字段添加到您的班级(即经理) – Pynchia

回答

0

这不清楚你在这里问什么。创建用户(不是管理员)的表单首先仅显示三个字段,以允许您设置密码,但是会继续到第二个表单,您可以在其中设置其他字段,包括名字。

您的经理类不需要定义这些字段,因为它们是您通过一对一关系访问的用户类的属性。

+0

我看到。我期望创建管理器的表单会显示管理器包含的所有字段 - 其中将包含用户包含的所有字段;实际上我仍然感到困惑,为什么它只显示那三个字段。 – Pranab

+0

实际上,我不明白你的意思是三个字段。您的经理表单只会显示管理员包含的字段 - 用户(出于某种原因,您称其为“manager”)和“internal_notes”。所有其他字段都在用户本身上。而创建用户的初始表单只显示用户名和密码,它甚至不会在该阶段显示电子邮件。 –

+0

其实我必须首先取消注册用户才能正常工作。为什么? admin.site.unregister(用户) admin.site.register(用户) – Pranab