如何在 Django 模型中反转 link 外键?

How to reverse link foreign key in Django model?

这是我的模型

class Comment (models.Model):
    parent = models.ForeignKey('Comment',
                           related_name='children',
                           null=True)
    text = models.TextField(blank=True)

    def __repr__(self):
        return self.text

class Thread(models.Model):
    comment = models.ForeignKey('Comment', related_name='parent_thread', null=True)
    text = models.TextField(blank=True)

    def __repr__(self):
        return self.text

当我尝试将线程的评论设置为评论实例时,评论没有反向链接(我无法从评论实例访问 related_name 字段)

from tree.models import Comment, Thread
thread1 = Thread(text='thread1')
c1 = Comment(text='c1')
c1.save()
thread1.save()
thread1.comment = c1
thread1.save()
str(c1.parent_thread) # return None

为什么会这样?有人可以帮我吗?

谢谢

你在倒退。如果你想有一个 parent_thread,你必须把 ForeignKey 放到 Comment class 中,而不是像这样反过来:

class Thread(models.Model):
    ...

class Comment (models.Model):
    parent_thread = models.ForeignKey(Thread)
    ...

在您当前的代码中,您有 多个 Thread 个对象链接到一个 Comment 对象。