我们将django app从1.5升级到1.7
在我的情况下,我不确定Substituting a custom User model的更新是否是个好主意。
由于只有一个AUTH_USER_MODEL
设置,因此只有一个应用可以成为“赢家”。
如果你有多个应用,这不起作用。
如果有多个应用想要按用户存储自定义信息,该怎么办?
示例:
employeeapp
想要为每个用户存储salary
。 skillsapp
想要为每个用户存储skill_level
。
如何解决这个问题?
答案 0 :(得分:1)
使用"个人资料"对User
:
<强> employeeapp / models.py 强>
class Employee(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
salary = models.IntegerField()
<强> skillsapp / models.py 强>
class Handyman(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
skill_level = models.IntegerField()
然后你可以访问这些&#34;个人资料&#34;就像这样简单:
user = User.objects.get(username='me')
user.employee.salary
user.handyman.skill_level
如果你想创建&#34;个人资料&#34;实例会自动使用User
信号发送给{{1}}发件人。