【发布时间】:2022-01-04 20:34:14
【问题描述】:
我需要创建一个架构,但它有一个名为 global 的列,当我尝试编写此内容时,出现错误。
class User(BaseModel):
id:int
global:bool
我尝试使用其他名称,但尝试保存在 db 中时出现另一个错误。
【问题讨论】:
-
global是保留关键字是有原因的。找另一个名字。 -
像
is_global这样的东西无论如何都会更清楚。为什么一定要叫global?当然有一种方法可以将 python 变量名映射到 SQL 列名,而不需要它们相同。 -
请记住,
global可能不是无效的列名,但在这样的class语句中语法上无效,因此您需要找到将列添加到模型的另一种方法。 -
作为一个类似的例子,
foo.global = 5之类的东西是语法错误,但setattr(foo, "global", 5)是完全合法的。 -
我知道这是一个保留关键字 man (但我需要使用表列的相同名称),因为我提出了这个问题,但是 mx0 给出的解决方案对我来说很好,谢谢大家。