int*_*tar 1 python django monkeypatching django-models
我们正在运行django并与现有应用程序共享数据库.我们希望使用现有的"用户"表(不是Django自己的)来存储用户信息.
看起来可以在User定义的Meta类中更改Django使用的表的名称.
但我们宁愿不改变Django核心本身.
所以我们认为我们可以像这样对核心auth.User类进行子类化:
class OurUser(User) :
    objects = UserManager()
    class Meta:
        db_table = u'our_user_table'
这里,目的不是为自定义的User类添加任何额外的字段.但只是使用替代表.
但是,这会失败(可能是因为ORM假设our_user_table应该有一个外键引用回原始用户表,而不是这样).
那么,这种明智的做法是做我们想做的事吗?我是否错过了将类映射到表格的简单方法?或者,如果没有,这可以成功吗?
更新:
我想我可以通过在local_settings.py中"修补"用户的_meta来进行我想要的更改.
User._meta.db_table = 'our_user_table'
任何人都可以想到如果我这样做会发生什么坏事吗?(特别是在相当典型的Django/Pinax应用程序的上下文中?)
| 归档时间: | 
 | 
| 查看次数: | 1673 次 | 
| 最近记录: |