zoukankan      html  css  js  c++  java
  • 【Django Models】虚拟化提取Models公共的功能

    1、需求

    Django的Models定义了数据库的表,大家使用过程中很多表肯定有许多公共的操作。那么可以将一些公共的操作封装起来,就不需要在每一张表中再来重复的定义和使用了。

    2、定义

    还是从models中继承,定义一个JsonMode基类

    class JsonMode(models.Model):

    2.1 虚拟化

    #Model基类,不会去创建数据表
    #默认按照时间逆序排列
    class Meta:
        abstract = True

    2.2 公共字段,例如排序

    #Model基类,不会去创建数据表
       #默认按照时间逆序排列
       class Meta:
           abstract = True
           ordering = ['-ModifyTime','-CreateTime','-id']

    3、公共函数

    如下图,节选了部分函数,此函数有普通的入参self和其他参数

    image

    3.1 还未定义的字段操作

    特别注意的是,根据列名要进行数据字段的操作,一般的models如下操作即可

    self.name =  ‘这是一个测试’

    在JsonMode中,colname由参数传递进来,则可以使用Python的object的属性设置函数和获取函数setattr和getattr

    #根据列名,保留旧值,新值暂时放到末尾,待上传文件成功之后,回调再刷新
               setattr(self, colName,getattr(self,colName,'') + GlobalVar.InterStr +  filename[0])

    3.2 Models的方法调用

    models的方法调用,直接使用self调用即可,如self.save()


     

    4、子类实现

    如下图,filteTemp继承JsonMode,调用父类的函数使用super(fileTemp,serl).function即可

    image

    好记性不如烂笔头
  • 相关阅读:
    Visual C#创建和使用ActiveX组件
    ASP.NET2.0 缓存(Cache)技术介绍
    轻松配置Win 2003自带Mail服务器
    如何打印IFRAME中的内容
    FAT32转NTFS、NTFS无损转FAT32
    使用设计模式构建通用数据库访问类
    笑到肚子痛
    夫妻的简单生活
    哈工大学子的一首强诗&哈工大才女的绝顶回诗
    相爱时要做的20件事
  • 原文地址:https://www.cnblogs.com/inns/p/5562162.html
Copyright © 2011-2022 走看看