在Django中扩展用户模型

时间:2011-06-15 21:20:17

标签: django django-models django-templates

我已将UserProfileuser相关联。但是,我不喜欢在模板中来回跳转以获取first_name,last_name等。我想仅将User模型用于auth-related个内容,并UserProfile用于与用户相关的所有信息(主要是用户信息的显示)。

我想知道是否有人可以评估我当前的UserProfile模型是什么,以及我可以改进它的位置或冗余的位置等等。谢谢。

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    network = models.ForeignKey(Network)
    location = models.CharField(max_length=100, blank=True)
    graduation = models.IntegerField(blank=True, null=True, choices=YEAR)
    headline = models.CharField(max_length=100, blank=True,)
    positions = models.ManyToManyField(Position, through ='Timestamp', blank=True)
    bio = models.TextField(max_length=1000, blank=True)

    @property
    def get_first_name(self):
        return self.user.first_name

    @property
    def get_last_name(self):
        return self.user.last_name

    def get_full_name(self):
        return self.user.get_full_name

    @property
    def get_date_joined(self):
        return self.user.date_joined    

1 个答案:

答案 0 :(得分:1)

不要在属性上使用“get”前缀。此外,请不要忘记您无法查询属性,因此您需要加入User。也许你可能想要add some custom queries to your manager