当前位置: 首页 > 编程笔记 >

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

钱跃
2023-03-14
本文向大家介绍Django ORM 自定义 char 类型字段解析,包括了Django ORM 自定义 char 类型字段解析的使用技巧和注意事项,需要的朋友参考一下

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

自定义 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)

执行命令更新到数据

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 是否可以创建string类型的自定义字段并在显示字段描述时显示它们?我想用YouTrack实现一个bug数据库,如果字段“steps to reproduce”必须写在一个很小的列中,这是不可能做到的。 我正在使用YouTrack2018.1。

  • 我创建了一个简单的类型: 现在我想初始化一个已经声明的变量(当前值=0),其结果为 现在,TypeScript告诉我,类型号不能赋给CustomType类型,即使初始化应该工作,只要数字是0、1、2、3、4或5的整数。: TS2322:类型“number”不能赋给类型“CustomType”。 不幸的是,到目前为止,我没有找到任何解决方案。转换为标准类型很好,但我不确定如何使我的自定义类型接受一个

  • 介绍 model 参考文档已经介绍了如何使用 Django 的标准字段类;例如 CharField, DateField,等等。对于很多应用来说,这些类足够用了。 但是在某些情况下, 你所用的Django 不具备你需要的某些精巧功能,或是你想使用的字段与 Django 自带字段完全不同。 Django 内置的字段类型并不能覆盖所有可能遇到的数据库的列类型,仅仅是些普通的字段类型,例如VARCHAR

  • 在Wordpress中,我创建了一个名为“Sports”的自定义帖子类型,其分类法为“sport_locations”。使用高级自定义字段(ACF)插件,我创建了用于显示分类术语的字段。我把一切都准备好了,但是我在输出上传的图像时遇到了问题。 在ACF中,我可以选择图像的返回值为:对象,url或ID。现在我已将其设置为对象。 下面是我到目前为止的代码。我正在single-sports.php中编写

  • 我最近开发了一个网站, 我创建了一个带有slug'job_post‘的自定义post类型,然后客户端也添加了许多post, 我现在需要将slug更改为“/jobs”, 有没有一种方法可以做到这一点而不删除所有的帖子?我担心我会把网站搞乱, 非常感谢,

  • Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。