Django模型-继承字段(Sorta?)

Django模型-继承字段(Sorta?),django,model,Django,Model,如何构造RegisteredSubscriber模型以实现下面的伪代码中描述的功能 我想我可以为每个字段实现一个函数,但这似乎不正确,而且有点费力。想法 61 class RegisteredSubscriber(Subscriber): 62 user = models.ForeignKey(User) 63 first_name = self.user.first_name 64 last_name = self.user.last_name 65

如何构造RegisteredSubscriber模型以实现下面的伪代码中描述的功能

我想我可以为每个字段实现一个函数,但这似乎不正确,而且有点费力。想法

 61 class RegisteredSubscriber(Subscriber):
 62     user = models.ForeignKey(User)
 63     first_name = self.user.first_name
 64     last_name = self.user.last_name
 65     email = self.user.email
 66
 67 class AnonymousSubscriber(Subscriber):
 68     first_name = models.CharField(max_length = 100)
 69     last_name = models.CharField(max_length = 100, blank = True)
 70     email = models.EmailField(unique = True)
好的,这是我想要的功能,但我确定它不合适。思想?形式化方法是什么?我是否犯了设计错误

 59 class RegisteredSubscriber(Subscriber):
 60     user = models.ForeignKey(User, unique = True)
 61     first_name = 'candy'
 62     last_name = 'candy'
 63     email = 'candy'
 64
 65     def __init__(self, *args, **kwargs):
 66         super(RegisteredSubscriber, self).__init__(*args, **kwargs)
 67         
 68         if self.id:
 69             self.first_name = self.user.first_name
 70             self.last_name = self.user.last_name
 71             self.email = self.user.email
 72
 73     def __unicode__(self):
 74         return u'%s %s' % (self.first_name, self.last_name)
由于您已经与用户建立了ForeignKey关系,我不理解在RegisteredSubscriber模型中需要有first_name、last_name和email字段,除非我遗漏了什么。如果您想使用RegisteredSubscriber实例访问first_name etc字段,ForeignKey关系允许您使用。
例如:用户名

但是为什么不取名字,姓。。。从RegisteredSubscriber中已有的用户字段?原因是,假设我有一个subscriber对象sub。在这两种情况下,我都希望使用sub.first_名称访问first_名称,如果sub是RegisteredSubscriber,则不使用sub.user\u firstname或sub.user.first\u name。是否要在RegisteredSubscriber表中存储该用户的first\u name等的副本,还是像sub.first\u name一样访问它?