Как вывести данные взаимосвязанных таблиц в одном запросе DRF?
Есть две модели:
class UserProfile(AbstractBaseUser, PermissionsMixin):
phone_number = models.CharField(max_length=18, unique=True, verbose_name='Номер телефона / Логин')
invite_code = models.CharField(max_length=6, unique=True, null=True, blank=True, verbose_name='Инвайт-код')
subscription = models.CharField(max_length=6, null=True, verbose_name='Инвайт-код, на который подписаны')
is_active = models.BooleanField(default=True, verbose_name='Активный')
is_staff = models.BooleanField(default=False, verbose_name='Статус персонала')
is_superuser = models.BooleanField(default=False, verbose_name='Суперпользователь')
date_joined = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания аккаунта')
objects = UserManager()
USERNAME_FIELD = "phone_number"
class Meta:
verbose_name = 'Профиль'
verbose_name_plural = 'Профили'
class Invite_code_bindings(models.Model):
user_invite_code = models.OneToOneField(UserProfile, on_delete=models.DO_NOTHING, related_name='user_invite_code',
verbose_name='Пользователь')
invited_user = models.ForeignKey(UserProfile, on_delete=models.DO_NOTHING, related_name='invited_users',
null=True, verbose_name='Подписка')
Прошу показать, как можно реализовать в DRF вывод такого запроса:
user = users.UserProfile.objects.filter(phone_number=request.user).first()
subscriptions = users.Invite_code_bindings.objects.filter(invited_user_id=user.id).values_list(
'user_invite_code__phone_number', flat=True)
Сам пробовал искать информацию о выводе данных из двух таблиц, но все они приводят к решению, где необходимо в одном сериалайзере добавлять другой. Это решение не работает или я криворукий. У меня получилось выводить максимум id связанной строки, но не номер телефона (из этой же строки).