0
我有一个代表文章的Django类。在一个或多个其他文章有时一文的评论,我已经表示如下使用递归许多一对多的关系,在这个类的关系:如何从递归多对多关系中检索Django对象?
class Article(models.Model):
comments_on = models.ManyToManyField('self', blank=True)
我认为,我已经成功地相关的文章彼此在管理界面中通过在comments_on字段中选择多个文章。假设一篇文章(id1)评论其他两篇文章(id2和id3)。我不知道如何访问id1的comments_on属性,以便id2和id3出现在我的Django模板中。
我想:
{{ [instance of Article object].comments_on }}
,但我得到的是:
[name of my app].Article.None
我想知道(1)如何访问此属性,让它显示? (2)我如何一次访问其中一篇相关文章?例如,如果在id2和id3上都有id1注释,我怎样才能显示id2或id3?
好comments_on是M2M领域,所以你不得不在从'Article.comments_on.all(返回的查询集for循环做)'和施展属性。 –
谢谢。我试图通过myvariable = Article.comments_on.all()将它分配给我的函数中的一个变量,然后我尝试通过我的html文件中的myvariable进行循环,但是我收到了一个AttributeError,它表示:'ManyToManyDescriptor'对象没有属性'all' – henrich
首先,'Article'是模型的类名。 'Article.comments_on'会返回'ManyToManyDescriptor'函数。 您只需调用'[实例文章] .comments_on.all()'来获取查询集。 – zaidfazil