Django Model使用保留Python关键字作为DB列名

时间:2015-04-06 06:22:22

标签: python django django-models

我正在开发一个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列名

有什么建议可以做到吗?

1 个答案:

答案 0 :(得分:5)

您可以使用Field.db_column。根据文档,它应该工作:

my_lambda = models.FloatField(db_column='lambda')
  

用于此字段的数据库列的名称。如果没有给出,Django将使用该字段的名称。

     

如果您的数据库列名是SQL保留字,或者包含Python变量名中不允许的字符 - 特别是连字符 - 那就没问题。 Django在幕后引用了列名和表名。