我正在使用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导致问题?
答案 0 :(得分:4)
不,它不会导致Django层出现问题。
然而,正如你所说,这不是pep8风格兼容,并且会导致一路上的挫折,特别是如果其他python开发人员参与其中,并且据我所知,MSSQL对表/字段名称不区分大小写。
- Update-- @Wolph有一个很好的建议
first_name = models.CharField(..., db_column='FirstName')
关于python样式和旧数据库之间的平衡。
答案 1 :(得分:0)
由于MSSQL在列名方面不区分大小写,因此不会对Django产生任何影响。除了列名称冲突之外,同时拥有camelcase
和camelCase
在Python中是合法的,但不会很好地结束。
为方便起见,我建议只需将数据库中的camelcase字段名转换为Python中的camel_case类型命名。
所以如果你的表看起来像这样:
FirstName
LastName
生成的Django模型将包含以下字段:
first_name = models.CharField(..., db_column='FirstName')
last_name = models.CharField(..., db_column='LastName')
答案 2 :(得分:0)