zoukankan      html  css  js  c++  java
  • Django ORM 常用字段和参数

    Django ORM 常用字段和参数

    一:常用字段

    AutoField
    int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。

    IntegerField
    一个整数类型,范围在 -2147483648 to 2147483647。

    CharField
    字符类型,必须提供max_length参数, max_length表示字符长度。

    DateField
    日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。

    DateTimeField
    日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例。

    二:自定义char类型字段
    首先要知道在常用字段中CharField默认的字段类型为varchar类型
    如何指定自定义char类型字段:
    1.先自定义一个类
    class FixedCharField(models.Field): #FixedCharField为自己取的名称,不是固定的

    """
    自定义的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
    

    2.在使用的时候,就继承类名
    class Person (models.Model):
    name = models.CharField(max_length=32) #默认的CharField字段是varchar类型
    new_name = FixedCharField(max_length=64, default="张三") #而怎么设置他的类型为char类型,并且为自定义的长度,注意不是models.FixedCharField

    def __str__(self):
        return  self.name
    

    在数据库中可以看到,字段的类型为自定义的char类型长度

  • 相关阅读:
    P3932 浮游大陆的68号岛
    P4595 [COCI2011-2012#5] POPLOCAVANJE
    CF455E Function
    【转载】乱堆的东西
    BZOJ1034 [ZJOI2008]泡泡堂BNB[贪心]
    CSP2019退役记
    BZOJ5206 [Jsoi2017]原力[根号分治]
    luogu3651 展翅翱翔之时 (はばたきのとき)[基环树+贪心]
    BZOJ1040 [ZJOI2008]骑士[基环树DP]
    BZOJ3037 创世纪[基环树DP]
  • 原文地址:https://www.cnblogs.com/sunny7/p/10351147.html
Copyright © 2011-2022 走看看