-
Приветствую,
Помогите правильно создать модель следующего назначения. Нужно для каждого юзера создать реферальную систему. Поясню, каждый юзер может иметь только 1 реферера и множество рефералов.
Написал следующую модель:class Profile(models.Model):
user = AutoOneToOneField(User, related_name='profile', verbose_name=_('User'))
referer = models.OneToOneField(Profile) # Только 1 реферер, правильно ли это?
referrals = models.ForeignKey(Profile, related_name='referrals ', verbose_name=_('Referrals')) # Тут, наверное, должно быть что-то вроде OneToMany? -
Пожалуйста не надо писать вопросы как комментарии в коде, которые к тому же не видно.
По сути у вас обе связи не верные. И вообще нужна одна:
class Profile(models.Model): user = AutoOneToOneField(User, related_name='profile', verbose_name=_('User')) referrer = models.ForeignKey('self', related_name='referrals') -
Почему именно так? Какой запрос мне необходимо будет сделать в таком случае чтобы достать отдельно реферера и рефералов?
-
Вам нужна связь "один ко многим" замкнутая на себя (на модель
Profile)profile = Profile.objects.get(...) profile.referrer # реферер - один profile.referrals.all() # рефералы - много
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
