我正在使用Django和DRF制作Twitter的克隆应用程序,其中包括以下型号。
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对象列表,该对象成为具有属性children
的帖子的子对象
但是,如果您在View中编写Post.objects.get (id = 1) .children
,则可以使用<django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager. <Locals> .RelatedManager object at 0x10d0395c0>
返回,但我无法获得预期结果。
我怎样才能取得好成绩?
答案 0 :(得分:3)
您不需要任何代码。只需使用反向关系。
鉴于Post的一个实例,您可以这样做:
my_post.parent_post.all()