2014-02-25 43 views
0

加入AUTH_USER在Django的1.6我用我自己的模式推广Django的用户模型像Django的与扩展的用户简

class Employee(models.Model): 
    user  = models.ForeignKey(User, related_name='profile') 
    adress  = models.CharField(max_length=500) 
    department = models.ForeignKey(Department) 

class Department(models.Model): 
    name = models.CharField('Name', max_length=200) 

我现在想登录的用户查看它的数据,所以我需要显示所有雇员,部门和auth_user表中的相关信息。

通常我会用

#employee = Employee.objects.select_related('department').select_related('user').get(user_id=request.user.id) 

打所有我想要的表。但由于某种原因,如果我为我的查询选择Employee.objects,我只是获取与部门表连接的employee表的信息,而没有auth_user的信息。 我用User.objects开始查询......它正好相反。我可以访问user_auth信息,但不能访问员工或部门信息。

我也试过我的模型中的OneToOne关系,但结果相同。我很确定,如果有外键关系引用应用程序表,则可以使用简单的方式将应用程序表与django表连接起来。

为了完整employee.id之间的差异employee.user_id

`id` int(11) NOT NULL AUTO_INCREMENT, 
    CONSTRAINT `department_id` FOREIGN KEY (`department_id`) REFERENCES `polls_department` (`id`), 
    CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) 

回答

0

为什么不定义Employee模型的django.contrib.auth.AbstractUserdocs here)一个子类?您可以一次访问所有User相关字段以及您在Employee课程中定义的额外字段。

+0

谢谢你的回答。我使用这里的文档https://docs.djangoproject.com/en/1.6/topics/auth/customizing/#extending-the-existing-user-model来扩展用户模型。 最后,我结束了使用你的建议。 – BlueSapphire