我正在开发一个Django Restful API&我处于我的数据库库存名称(即lambda与保留的python关键字冲突)的情况下,我需要在我的model.py
文件中使用它,其中包含代码
CHOICES = (
(1, 'Default'),
(0, 'Not Default'),
)
profileid = models.AutoField(primary_key=True)
alpha = models.FloatField()
beta = models.FloatField()
gamma = models.FloatField()
lambda = models.FloatField() # <---------- How to use lambda for column name
is_default = models.IntegerField(choices=CHOICES)
**我想要这个而不重命名DB列名
有什么建议可以做到吗?
答案 0 :(得分:5)
您可以使用Field.db_column
。根据文档,它应该工作:
my_lambda = models.FloatField(db_column='lambda')
用于此字段的数据库列的名称。如果没有给出,Django将使用该字段的名称。
如果您的数据库列名是SQL保留字,或者包含Python变量名中不允许的字符 - 特别是连字符 - 那就没问题。 Django在幕后引用了列名和表名。