我有模特:
class Lecturer(User):
title = models.CharField(max_length=20)
URL = models.URLField(null=True, blank=True)
objects = UserManager()
def about(self):
return u"%s %s %s" % (self.title, self.first_name, self.last_name)
def __unicode__(self):
return u"%d %s %s %s" % (self.pk, self.first_name, self.last_name, self.title)
class Meta:
db_table = 'lecturer'
现在,我想创建新的讲师,但使用现有的用户。 不幸的是,这不起作用:
>>> u = User.objects.get(pk=2)
>>> u
<User: nick>
>>> new = Lecturer(user_ptr_id=2, title='title', URL='url.com')
>>> new.username
u''
我尝试使用User对象而不是id,'pk'而不是'user_ptr_id',没有... 有什么想法吗?
答案 0 :(得分:0)
从django.contrib.auth.User
您可以使用AUTH_USER_MODEL
否则,您可能更容易在Lecturer和django的用户之间建立一对一的关系。这也在django documentation中描述。
总的想法是django.contrib.auth.User
班级&#39;责任是提供身份验证功能。它并不意味着扩展了业务功能。如果您需要这种功能,那么创建另一个具有一对一引用django.contrib.auth.User
的类的层次结构可能会更好