Django orm

让DJANGO ORM 对应多个结构相同的表,有时候分表是必须的,

方法1:guoqiang qian <gonefish@gmail.com>提供

你可以创建几个manager,然后重载manager中的get_query_set方法,对应不同的表

def get_query_set(self):
        self.model._meta.db_table = u'foobar' # 对应的表名
        return super(Table1Manager, self).get_query_set()

通过修改元信息中的db_table

代码我已经简单试过,没有什么太大的问题,估计如果是GenericRelation的话,应该会有问题吧

方法2:DIrk <dirk.ye@gmail.com>提供

当数据量几千万、几亿条的时候,分表还是比较合理的方式。

我找到一个比较野蛮的方式:

from youapp.models import YouClass

YouClass._meta.db_table = 'isnot_default_table'
rows = YouClass.objects.all()

这只是思路,可以通过修改_meta.db_table的值指定不同table,具体怎么操作(如何修改、在哪里修改),还应该和应用结合。比如某些历
史数据可以根据时间分表处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值