【发布时间】:2014-03-27 12:01:11
【问题描述】:
在 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 进行查询,我只会得到与部门表连接的员工表的信息,而没有 auth_user 的信息。 我是用 User.objects 开始查询吗...恰恰相反。我可以访问 user_auth 信息,但不能访问员工或部门信息。
我还在我的模型中尝试了 OneToOne 关系,但结果相同。我很确定,如果外键关系引用了 app-tables 和 django-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`)
【问题讨论】: