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

Dim*_*rab 3 python django django-models

我正在开发一个Django Restful API&我处于我的DB coulmn名称(即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)
Run Code Online (Sandbox Code Playgroud)

**我想要这个而不重命名DB列名

有什么建议怎么办?

Ank*_*pli 5

你可以使用Field.db_column相同的.根据文档,它应该工作:

my_lambda = models.FloatField(db_column='lambda')
Run Code Online (Sandbox Code Playgroud)

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

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