在Django中定义ManyToOne关系的名称

时间:2014-01-19 16:16:34

标签: python django

我想定义一个与自身有多对一关系的django模型。它是一个用户配置文件,作为OneToOne字段与身份验证用户模型连接。我想保存哪个用户(如果有的话)是将“当前”用户引用到我的系统的用户。这意味着我有以下定义:

class UserProfile(models.Model):
    user = models.OneToOneField(User, blank=True, related_name='profile')

    class Meta:
        abstract = True

class SpecificUserProfile(UserProfile):
    referrer = models.ForeignKey('self')

我看到django默认使用后缀_set的类名来命名引用模型集。我相信我会得到一些与specific_user_profile_set相关的东西。我更希望将其命名为u1.referreru2.referredu2.referred_set。有什么办法可以实现吗?

1 个答案:

答案 0 :(得分:3)

related_name='profile'

这是为任何相关字段定义名称的参数,因此:

class SpecificUserProfile(UserProfile):
    referrer = models.ForeignKey('self', related_name='referred')