Django ORM 自定义 char 类型字段解析


Posted in Python onAugust 09, 2019

用 CharField 定义的字段在数据库中存放为 verchar 类型

Django ORM 自定义 char 类型字段解析

自定义 char 类型字段需要下面的代码:

class FixedCharField(models.Field):
  """
  自定义的 char 类型的字段类
  """
  def __init__(self, max_length, *args, **kwargs):
    self.max_length = max_length
    super(FixedCharField, self).__init__(max_length=max_length, *args, **kwargs)
 
  def db_type(self, connection):
    """
    限定生成数据库表的字段类型为 char,长度为 max_length 指定的值
    """
    return 'char(%s)' % self.max_length

models.py:

from django.db import models 
class FixedCharField(models.Field):
  """
  自定义的 char 类型的字段类
  """
  def __init__(self, max_length, *args, **kwargs):
    self.max_length = max_length
    super(FixedCharField, self).__init__(max_length=max_length, *args, **kwargs)
 
  def db_type(self, connection):
    """
    限定生成数据库表的字段类型为 char,长度为 max_length 指定的值
    """
    return 'char(%s)' % self.max_length 
class Person(models.Model):
  id = models.AutoField(primary_key=True)  # 自增的 id 主键
  name = models.CharField(max_length=32)
  sex = FixedCharField(max_length=32, default="Man") # 使用上面自定义的char类型的字段
  age = models.IntegerField()
  birthday = models.DateField(auto_now_add=True)

执行命令更新到数据库

Django ORM 自定义 char 类型字段解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
python中迭代器(iterator)用法实例分析
Apr 29 Python
python使用psutil模块获取系统状态
Aug 27 Python
Python iter()函数用法实例分析
Mar 17 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
python 日期排序的实例代码
Jul 11 Python
tensorflow 实现数据类型转换
Feb 17 Python
Python 实现PS滤镜的旋涡特效
Dec 03 Python
Python实现抖音热搜定时爬取功能
Mar 16 Python
python中的random模块和相关函数详解
Apr 22 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 #Python
Django中自定义admin Xadmin的实现代码
Aug 09 #Python
python输出决策树图形的例子
Aug 09 #Python
Python实现决策树并且使用Graphviz可视化的例子
Aug 09 #Python
Django ORM 常用字段与不常用字段汇总
Aug 09 #Python
详解如何减少python内存的消耗
Aug 09 #Python
Django命名URL和反向解析URL实现解析
Aug 09 #Python
You might like
php堆排序实现原理与应用方法
2015/01/03 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
react-native android状态栏的实现
2018/06/15 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
Python3 处理JSON的实例详解
2017/10/29 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
对python中的logger模块全面讲解
2018/04/28 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
Python画图高斯分布的示例
2019/07/10 Python
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
标记环介质访问控制协议
2016/03/27 面试题
简历的自我评价
2014/02/03 职场文书
读书月活动方案
2014/05/22 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB