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 相关文章推荐
Python实现数据库编程方法详解
Jun 09 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
使用Python实现企业微信的自动打卡功能
Apr 30 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
如何在python中实现随机选择
Nov 02 Python
Python发送邮件封装实现过程详解
May 09 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 Python
python查看矩阵的行列号以及维数方式
May 22 Python
keras:model.compile损失函数的用法
Jul 01 Python
利用python下载scihub成文献为PDF操作
Jul 09 Python
Pytorch使用shuffle打乱数据的操作
May 20 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定时自动生成静态HTML的实现代码
2010/06/20 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
JS实现多选框的操作
2020/06/24 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
python常见数制转换实例分析
2015/05/09 Python
Python如何实现邮件功能
2020/05/27 Python
使用K.function()调试keras操作
2020/06/17 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
python requests库的使用
2021/01/06 Python
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
认购协议书范本
2014/04/22 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
vue3获取当前路由地址
2022/02/18 Vue.js