zoukankan      html  css  js  c++  java
  • Django 之 分表

    app名称为‘core’,基本的models.py文件内容如下:

     1 class Province(models.Model):
     2     name = models.CharField(u'省份名称',max_length=32)
     3     code = models.IntegerField(verbose_name=u'区号', unique=True)
     4     
     5     def __unicode__(self):
     6         return self.name
     7     
     8     class Meta:
     9         verbose_name = u'省份列表'
    10         verbose_name_plural = u'省份列表'

    法I:

    重构 manager 中的 get_query_set() 方法。

    需要说明的是:在 django 默认情况下,会为每一个models 类添加一个名为 objects 的 Manager,这个就是 Province.objects.all() 中 objects 的由来。

    修改后的 models.py 代码如下,表结构必须一致:

     1 # coding:utf-8
     2 from django.db import models
     3 
     4 # Create your models here.
     5 class ProvinceManager(models.Manager):
     6     def get_queryset(self):
     7 #         return super(ProvinceManager, self).get_queryset().filter(id=1)
     8         self.model._meta.db_table = 'core_province_1' # 我的app名为core
     9         return super(ProvinceManager, self).get_queryset()10         11     
    12 class Province(models.Model):
    13     name = models.CharField(u'省份名称',max_length=32)
    14     code = models.IntegerField(verbose_name=u'区号', unique=True)
    15     
    16     objects = ProvinceManager()
    17     
    18     def __unicode__(self):
    19         return self.name
    20     
    21     class Meta:
    22         verbose_name = u'省份列表'
    23         verbose_name_plural = u'省份列表'

    可以多写几个 Manager 来对应不同的表,同时对应多写几个不同的 objects(可以随意起名),在调用时调用相应的 Manager。

    法II:

    在哪里调用就在哪里更改。更改处添加代码如下:

    1 from core.models import Province
    2 
    3 Province._meta.db_table = 'core_prvoince_2'
    4 rows = Province.objects.all() 

    总结:

    不论哪种方法,其主要还是要更改 models 的 _meta.db_table 的值

  • 相关阅读:
    对于WP你所要了解的一些数字
    Win8系统太难用,再也不用了
    WP8下一些图片图标的常识(菜鸟篇)
    Wp8程序加载运行顺序(菜鸟篇)
    DLNA介绍(包括UPnP)
    一个通用的WPF值转换器
    C#创建Windows服务
    Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 3 数据访问层
    Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 1准备
    ASP.NET MVC Localization Helpers (本地化帮助方法)
  • 原文地址:https://www.cnblogs.com/liuq/p/5946087.html
Copyright © 2011-2022 走看看