Как получить объект самодеятельности из модели отношений родитель-ребенок - PullRequest
0 голосов
/ 20 мая 2018

Я делаю приложение, подобное клону Twitter, с Django и DRF, среди которых доступны следующие модели.
Reply - это модель, которая определяет отношения родитель-потомок Post.

class Post(models.Model):
    tweet = models.CharField(max_length=140, blank=False)
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE
        )
    created_at = models.DateTimeField(auto_now_add=True)

    @property
    def children(self):
        reply_obj = Reply.objects.filter(parent=self)
        children = []
        for obj in reply_obj:
            children.append(obj)
        return children


class Reply(models.Model):
    parent = models.ForeignKey(
        Post,
        related_name='parent_post',
        on_delete=models.CASCADE
        )
    child = models.ForeignKey(
        Post,
        related_name='child_post',
        on_delete=models.CASCADE
        )
    created_at = models.DateTimeField(auto_now_add=True)

Я хотел бы получить список объектов Post, которые становятся дочерними для этого Post со свойством children.
Однако, если вы напишите Post.objects.get (id = 1) .children в View, например, вы можете использовать <django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager. <Locals> .RelatedManager object at 0x10d0395c0> Возвращено, иЯ не могу получить ожидаемый результат.
Как я могу получить хорошие результаты?

1 Ответ

0 голосов
/ 20 мая 2018

Вам не нужен этот код.Просто используйте обратное отношение.

Для экземпляра Post вы можете сделать:

my_post.parent_post.all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...