gpt4 book ai didi

python - 在 Django 模型中将字段命名为 'id' 是否安全?

转载 作者:太空狗 更新时间:2023-10-29 21:30:38 25 4
gpt4 key购买 nike

class MyModel(models.Model):
id = models.IntegerField(primary_key=True)

class MyModel(models.Model):
id_ = models.IntegerField(primary_key=True)

根据 pep8,应该使用 single_trailing_underscore_ 来避免与 Python 关键字发生冲突,但是使用名为 id_ 的列看起来很难看,并且可能会让不熟悉数据库级别 python 的人感到困惑。

Django 文档使用“id”列名称: https://docs.djangoproject.com/en/1.11/ref/models/fields/#uuidfield .

将此字段命名为“id”是否安全?

最佳答案

Python 允许在任何上下文中隐藏内置函数。内置函数在 LEGB 模型中的优先级最低(局部变量、封闭范围、全局变量、内置函数)。同时,其他模块中的代码不会受到此阴影的影响; id 在其他上下文中仍将引用内置。因此隐藏内置函数是完全安全的。 “真正”的问题是它是否是一个好主意。在这种情况下:

  • id() 是不太常用的内置函数之一。
  • 隐藏类内部的内置函数比隐藏函数内部或全局的内置函数更不容易引起混淆,因为类变量通常以类或实例的名称为前缀,后跟一个点。
  • .id 字段在 Django 代码中是惯用的,事实上,如果您不这样做,Django 会默认创建该字段。

关于python - 在 Django 模型中将字段命名为 'id' 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43813575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com