我正在尝试使用Django中的_set
来获取相关对象。我想得到所有引用父对象的对象。
我的模特:
class MessageBoard(models.Model):
title = models.CharField(max_length=40)
message = models.TextField()
person = models.ForeignKey(User)
date = models.DateTimeField()
parent = models.ForeignKey("self", default=None, null=True)
但是当我试图得到一个对象的集合时,我得到了一个错误。
>>> msg = MessageBoard.objects.get(pk=1)
>>> msgs = msg.parent_set.all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'MessageBoard' object has no attribute 'parent_set'
如果我这样做
>>> MessageBoard.objects.filter(parent=1)
它会根据需要返回对象。我需要使用_set
(或其他方式来实现相同的结果),因为我想在django模板中使用。
答案 0 :(得分:2)
默认的反向引用不是由字段命名,而是由模型命名。它应该是messageboard_set
。
由于名称令人困惑,我建议在related_name
上设置ForeignKey
。