在Django 1.6中,我使用我自己的模型扩展了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)
我现在希望登录用户查看其数据,因此我需要显示表employee,department和auth_user中的所有相关信息。
通常我会用
#employee = Employee.objects.select_related('department').select_related('user').get(user_id=request.user.id)
点击我想要的所有表格。但由于某种原因,如果我为我的查询选择Employee.objects,我只会获得与department表连接的employee表的信息,而不包含auth_user的信息。 我是否使用User.objects开始查询...它正好相反。我可以访问user_auth信息,但不能访问员工或部门信息。
我也在模型中尝试过OneToOne关系,但结果相同。我很确定,如果外键关系引用了django-tables,那么有一种简单的方法可以将app-tables连接起来。
为了完整性,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 :(得分:0)
为什么不将Employee
模型定义为django.contrib.auth.AbstractUser
(docs here)的子类?您可以一次访问所有User
相关字段以及您在Employee
课程中定义的额外字段。