我知道选择一个相关的对象应该做object.related_set.all()
。但在我的情况下,这会产生AttributeError,所以很难调试。设置如下:
class Action(models.Model):
...
class FieldDiff(models.Model):
action = models.ForeignKey(Action, editable=False, related_name='Action')
在一个壳里:
^{pr2}$我想这和camelcase的翻译有关。我可以绕过这个问题,但是这个代码将从模板调用,所以我宁愿没有额外的逻辑。在
这是因为您将
related_name
指定为Action
。这意味着您希望通过Action_set
访问与Action
关联的所有FieldDiff
实例。因为看起来这不是您想要的,最简单的解决方案是删除related_name
参数。在这与“从camelcase翻译”无关。在
您已经给ForeignKey一个显式的
related_name
属性。这是Django用来提供反向关系的名称。所以你的问题应该是:实际上,这个相关的\u name值没有意义。您应该删除它,然后原始的
fielddiff_set
就可以工作了。在相关问题 更多 >
编程相关推荐