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

Man*_*hit 3 python django orm django-models

我是 Django 的新手。在参考 django 检查框架文档时,我遇到了以下几点:-

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

我不知道为什么存在这种限制。此外,django 文档并不清楚此类限制。我在谷歌上搜索了相同的内容,但找不到任何好的答案。

提前致谢。

Sar*_*iev 5

存在此限制是因为 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']