【发布时间】:2019-09-25 12:12:40
【问题描述】:
无法从字段名称有双下划线的 django 查询。
这是因为在 django 查询语言中__ 有自己的含义
那么如何查询实际名称为"my__fyeild__name" 的字段?
template.fields.filter(my__fyeild__name="aaa")
在数据库中,该列的名称带有两个下划线__,我不允许重命名该列。
【问题讨论】:
-
为什么要定义一个带双下划线的字段名呢?据我所知,您不能查询带有双下划线的字段,因为 Django 会首先将这些字段按
__部分分开。 -
对“我如何做 X?”的最糟糕的评价SO中的问题是“你为什么想做X”?但是,如果您必须知道,我正在处理由其他人创建的数据库表,该表的字段名称为“__”。
-
不,不是,因为 Django 可以完美处理名称与 Django 中名称不同的字段,所以这就是著名的 XY 问题 :) en.wikipedia.org/wiki/XY_problem
-
其实很常见的现象是,如果有人问“如何做 Y”,答案是“你一开始就不应该做 Y,你可以在更好的方法”。这就是为什么要问“你为什么想做 Y?”很有用,因为它有时可以以更好的方式解决。
标签: django django-models django-orm