Как мне написать сериализатор DRF, который объединяет четыре модели с внешними ключами? - PullRequest
0 голосов
/ 07 января 2020

Добрый день,

Я не понимаю, как вернуть данные, которые мне нужны (или, возможно, я не настроил модели эффективно).

В моем приложении есть пользователи и группы. Каждый пользователь является частью группы, каждая группа имеет руководителя и посла (которые являются пользователями). Для этого sh я настроил следующие модели:

class Groups(models.Model):
    group_name = models.CharField(max_length=35)
    group_description = models.CharField(max_length=255)

    def __str__(self):
        return "{}".format(self.group_name)


class UserProfile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='profile')
    title = models.CharField(max_length=35)
    group = models.ForeignKey(Groups, on_delete=models.CASCADE, related_name="group")


class Ambassadors(models.Model):
    group = models.ForeignKey(Groups, on_delete=models.CASCADE, related_name="ambassador")
    ambassador = models.ForeignKey(UserProfile, on_delete=models.CASCADE, related_name="ambassador")


class GroupLeaders(models.Model):
    group = models.ForeignKey(Groups, on_delete=models.CASCADE, related_name="leader")
    group_leader = models.ForeignKey(UserProfile, on_delete=models.CASCADE, related_name="leader")

Я хотел бы вернуть поля группы вместе с соответствующим идентификатором и именем посла и руководителя группы.

Я создал сериализатор для моделей Ambassador и GroupLeaders, затем добавил их в сериализатор Groups, но я не совсем понимаю, какие шаги предпринять и как это настроить.

Спасибо за любые руководство.

BCBB

...