2014-01-19 3 views
0

Я хотел бы определить модель django, которая имеет отношения «один-к-одному» с самим собой. Это профиль пользователя, подключенный как поле OneToOne с пользовательской моделью аутентификации. Я хотел бы сохранить, какой пользователь (если есть) был тем, кто отослал «текущего» пользователя в мою систему. Это означает, что у меня есть следующее определение:Определение имени отношения ManyToOne в Django

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

    class Meta: 
     abstract = True 

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

Я видел Джанго по умолчанию для обозначения набора ссылочных моделей по имени класса с суффиксом _set. Я верю, что получаю что-то по строкам specific_user_profile_set. Я бы предпочел, чтобы он получил название u1.referrer и u2.referred или u2.referred_set. Есть ли способ, которым это может быть достигнуто?

ответ

3
related_name='profile' 

Это аргумент, чтобы определить имя для любого соответствующего поля, так:

class SpecificUserProfile(UserProfile): 
    referrer = models.ForeignKey('self', related_name='referred') 
Смежные вопросы