【发布时间】:2019-04-24 06:41:29
【问题描述】:
我有一张桌子core_people 和一张备用桌子core_people_01。
是否可以使用PeopleDjango模型对“克隆”表进行查询?
类似这样的:
People.objects.get(pk = 123).table("people_01")
我一直在网上搜索没有成功。
评论后更新
阅读关于 SO 的另一篇文章,我已经尝试过该解决方案。在我的模型文件中,我把这个方法:
def get_model(db_table):
class MyClassMetaclass(People):
def __new__(cls, name, bases, attrs):
name += db_table
return People.__new__(cls, name, bases, attrs)
class MyClass(models.Model):
__metaclass__ = MyClassMetaclass
class Meta:
db_table = db_table
return MyClass
使用它:
backup_people = get_model("core_people_01")
print (backup_people .objects.get(pk = 1234))
Pylint 告诉我 MyClassMetaclass 作为 MetaClass 无效并尝试执行上述指令,python 告诉我:
RuntimeWarning:模型“myclassmetaclass.core”已注册。不建议重新加载模型,因为它会导致不一致,尤其是与相关模型不一致。
【问题讨论】:
标签: django