我最近开始研究一个长期运行的MySQL支持的Django网站。除了数据库中似乎已经匆忙应用的一个补丁之外,代码大部分都是干净且写得很好的。
具体来说,其中一个模型被命名为tbl_Badge_data
。根据应用于网站其余部分的命名约定,此模型应命名为Badge
。
不幸的是,已经有太多基于错误名称的内容,并且更改现有脚本(这些包括Django查询集操作以及SQL语句)是不可行的。不能替换所有错误名称的实例,因为并非所有代码都归我们所有;还有其他用户依赖这些数据。
有没有办法将Badge
别名变为tbl_Badge_data
,以便所有未来的开发都使用正确的名称?如果是,这将如何影响基础表的名称?如果没有,在没有引入性能影响的情况下处理这样的事情的最佳方法是什么(例如"代理表"或者#34;代理模型"这是一对一的地图) ?你可以想象,我的团队并不想在这个非问题上投入时间(并且可能有理由)让我忽略这一点。
答案 0 :(得分:2)
代理模型不一对一地图;它在数据库中没有任何表示,并且完全符合您的要求。
更简单但只是在模型中定义别名;在定义tbl_Badge_data之后,你可以这样做:
Badge = tbl_Badge_data
并在任何需要的地方导入徽章。