【问题标题】:django joining auth_user with extended user profiledjango 使用扩展的用户配置文件加入 auth_user
【发布时间】: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`)

【问题讨论】:

    标签: python mysql django


    【解决方案1】:

    为什么不将您的 Employee 模型定义为 django.contrib.auth.AbstractUser (docs here) 的子类?您可以一次性访问所有User 相关字段以及您在Employeeclass 中定义的额外字段。

    【讨论】:

    猜你喜欢
    • 2012-03-11
    • 2015-07-08
    • 2018-01-26
    • 2013-06-19
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 2012-07-22
    • 2017-07-14
    相关资源
    最近更新 更多