django字段名称不得以下划线结尾。字段名称不得包含__

时间:2016-10-27 04:19:25

标签: python django django-models orm

我是django的新手。在提到django check框架文档时,我遇到了以下几点: -

  • Field names must not end with an underscore.
  • Field names must not contain "__".

我无法知道,为什么存在这种限制。此外,django文档并不清楚这种限制。我用Google搜索了同样的内容,但也没有得到任何好的答案。

提前致谢。

1 个答案:

答案 0 :(得分:4)

存在这种限制是因为django在过滤器查找中使用__

https://docs.djangoproject.com/en/1.10/topics/db/queries/#lookups-that-span-relationships

  

Django提供了一种强大而直观的方式来“跟踪”查找中的关系,在后台自动处理SQL JOIN。要跨越关系,只需使用模型中相关字段的字段名称,用双下划线分隔,直到到达所需字段。

因此,在字段名称中使用它会破坏查找解析

对于尾随下划线是同样的原因。如果您在字段名称中将其分隔,则test___field.split('__')将变为['test', '_field']而不是['test_', 'field']