试图解决相当简单的问题,但我有点失落。
class Person(models.Model):
created_by = models.ForeignKey(User)
class User(models.Model):
person = models.ForeignKey(Person)
用户是使用系统,登录,创建人员等的用户。 每个人都有创建它的信息。 每个用户也应该只有一个人,但能够创建无限的人
那么问题如何正确创建用户(注册时)并分配人员? 我无法保存没有用户的人,也无法保存没有用户的用户。
我认为在User模型中使用person.models.ForeignKey(Person,null = True)并不是一个好的设计,因为User必须有Person。
有什么建议吗? 谢谢
答案 0 :(得分:0)
看起来User
应该只从Person
模型继承,因为每个用户都是一个人。顺便提一下,这也可以解决您的问题 - 创建User
会自动创建关联的Person
。
你应该read about multi-table inheritance完全理解这是如何运作的。
此外,created_by
字段应该指定null=True
,因为任何人都不会创建第一个Person,因此第一个对象需要在那里有Null
值。 / p>
class Person(models.Model):
created_by = models.ForeignKey('User', null=True)
class User(Person):
person = models.ForeignKey('Person')
此外,由于您希望将User
模型用作AUTH_USER_MODEL
,因此您应read about requirements for such models。