制作django字段名称camelCase是否安全?

时间:2015-12-29 20:59:13

标签: sql-server django django-models

我正在使用django和MSSQL Server后端。我在一个数据库上运行了inspectdb,当它们之前是camelCase时,它使我的所有字段名都小写。

我想保留camelCase(即使它没有使用Python)。我在inspectdb.py中找到了它的位置:

 """
        Modify the column name to make it Python-compatible as a field name
        """
        field_params = {}
        field_notes = []

        new_name = col_name.lower()
        if new_name != col_name:
            field_notes.append('Field name made lowercase.')

删除col_name.lower()是否安全,还是会导致camelCase导致问题?

3 个答案:

答案 0 :(得分:4)

不,它不会导致Django层出现问题。

然而,正如你所说,这不是pep8风格兼容,并且会导致一路上的挫折,特别是如果其他python开发人员参与其中,并且据我所知,MSSQL对表/字段名称不区分大小写。

- Update-- @Wolph有一个很好的建议

first_name = models.CharField(..., db_column='FirstName')

关于python样式和旧数据库之间的平衡。

答案 1 :(得分:0)

由于MSSQL在列名方面不区分大小写,因此不会对Django产生任何影响。除了列名称冲突之外,同时拥有camelcasecamelCase在Python中是合法的,但不会很好地结束。

为方便起见,我建议只需将数据库中的camelcase字段名转换为Python中的camel_case类型命名。

所以如果你的表看起来像这样:

FirstName
LastName

生成的Django模型将包含以下字段:

first_name = models.CharField(..., db_column='FirstName')
last_name = models.CharField(..., db_column='LastName')

答案 2 :(得分:0)

我认为这是一个编码风格的问题。根据官方document,它显示:

  

字段名称应全部小写,使用下划线而不是camelCase。

因此,如果您对此一无所知。确保您正在遵循文档。它将对其他开发人员友好。