内容简介:首先这是一个先有鸡还是先有蛋的问题,大部分时候数据都来自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
这样创建好的索引就完全是字母顺序排列了,小伙伴们可以试试看。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google's PageRank and Beyond
Amy N. Langville、Carl D. Meyer / Princeton University Press / 2006-7-23 / USD 57.50
Why doesn't your home page appear on the first page of search results, even when you query your own name? How do other web pages always appear at the top? What creates these powerful rankings? And how......一起来看看 《Google's PageRank and Beyond》 这本书的介绍吧!