Django Model运行时关联表

场景

现在数据库中,有些表 每个商户单独存一张表,例如支付表payment_xxx,payment_yyy,payment_zzz分表标示3个商户的支付记录,在记录数据的时候,采用了原生的sql记录,后来在做报表的时候,总是觉得,要是可以用ORM就简单多了啊。

解决办法

添加一个manage=False的Model,并在view中指定db_table,就可以用这个Model进行关联表的查询了,例如

class Payment(models.Model):
    #fields

    class Meta:
        managed = False
        db_table='payment'  #任意指定的一张不存在的表 

在veiw中就可以这样使用了

Payment._meta.db_table="payment_xxx"
Payment.objects.filter()

备注

一个Model Class暂时只能指定一次_meta.db_table的值,再次指定是无效的,如果要同时处理多个表,则不能使用此方法。

你可能感兴趣的:(Django Model运行时关联表)