Django如何自定义model创建数据库索引的顺序

栏目: Python · 发布时间: 4年前

内容简介:首先这是一个先有鸡还是先有蛋的问题,大部分时候数据都来自excel的整理,当数据越来越多,需要分析的点也越来越多的时候,通过excel来管理显然有些吃力了。这时候就需要将excel导入到数据库中,然而model创建的索引并非是我们编写时候的顺序,特别是当存在 models.ForeignKey 时,我们必须要先创建 ForeignKey的class,最后再创建总表。为了保证数据库的索引跟excel的索引一致,我们需要对model中的索引字段做一系列的处理(可能这是一个野路子)。

首先这是一个先有鸡还是先有蛋的问题,大部分时候数据都来自excel的整理,当数据越来越多,需要分析的点也越来越多的时候,通过excel来管理显然有些吃力了。

这时候就需要将excel导入到数据库中,然而model创建的索引并非是我们编写时候的顺序,特别是当存在 models.ForeignKey 时,我们必须要先创建 ForeignKey的class,最后再创建总表。

为了保证数据库的索引跟excel的索引一致,我们需要对model中的索引字段做一系列的处理(可能这是一个野路子)。

首先当然是先创建好ForeignKey,这部分class要写在前面,否则总表的class对于引用的ForeignKey会提示未定义(这部分不做举例)。

接下来创建总表,此时不要着急去填写总表中的索引字段,只先创建这个总表的表头,如下图:

@python_2_unicode_compatible
class ZZ_Demo(models.Model):  #此处的ZZ开头的命名是为了让这个class在最后创建
######中间什么都不要写######
    class Meta:
        verbose_name = '这是个Demo'
        verbose_name_plural = '这是个Demo' #这些是在Django admin里显示的 可忽略

    def __str__(self):
        return self.name

然后在终端执行:

python manage.py makemigrations
python manage.py migrate

这个过程会看到系统在创建数据表。

创建好以后再添加总表中的索引字段,首先可以肯定的是model是按照字母顺序创建索引的,如果没有其他的models.ForeignKey,可以直接通过字母顺序来控制索引的创建顺序,如下图所示:

@python_2_unicode_compatible
class ZZ_Demo(models.Model):
    ab_productline = models.ForeignKey(ProductLine, verbose_name=u'产品线',default=1,null=True)
    ac_name = models.CharField(max_length=50, verbose_name = u'故障名称',null=True)
    ......
    bn_casetags =  models.CharField(max_length=50, verbose_name = u'关键词 标签 备注',default=None,blank=True,null=True)

    class Meta:
        verbose_name = '这是个Demo'
        verbose_name_plural = '这是个Demo'

    def __str__(self):
        return self.be_casenumber

这样创建好的索引就完全是字母顺序排列了,小伙伴们可以试试看。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数字乌托邦

数字乌托邦

尼古拉斯•卡尔 / 姜忠伟 / 中信前沿出版社 / 2018-5 / 69.00

当下,技术与我们的关系变得越来越紧密不可分割,特别是智能手机等设备的出现,带给整个人类社会一场彻底的变革。的确,智能手机上的各种应用程序让我们的工作生活无比便利:社交媒体让我们能够和他人实时保持联络并传输信息,不再受时间、地点的限制;搜索引擎通过精准的算法将我们所需要的信息整合推送至屏幕上,让我们毫不费力就看到自己想要的;地图软件为我们的出行提供了更多路线选择,甚至可以使用语音导航,帮助我们顺利到......一起来看看 《数字乌托邦》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具