Django学习笔记之model篇(二)

Field的常用参数
primary_key:  指定是否为主键。
unique:  指定是否唯一。
null:  指定是否为空,默认为False。
blank: 等于True时form表单验证时可以为空,默认为False。
default:  设置默认值。
DateField.auto_now:  **每次修改**都会将当前时间更新进去,只有调用Model.save()方法才会调用
QuerySet.update方法将不会调用。这个参数只是Date和DateTime以及Time类才有的。
DateField.auto_now_add:  **第一次添加**进去,都会将当前时间设置进去。以后修改,不会修改这个值

常用的模型字段类型

1. IntegerField : 整型,映射到数据库中的int类型。
2. CharField:  字符类型,映射到数据库中的varchar类型,通过max_length指定最大长度。
3. TextField:  文本类型,映射到数据库中的text类型。
4. BooleanField: 布尔类型,映射到数据库中的tinyint类型,在使用的时候,传递True/False进去。如果要可以为空,则用NullBooleanField。
5. DateField:  日期类型,没有时间。映射到数据库中是date类型,在使用的时候,可以设置DateField.auto_now每次保存对象时,自动设置该字段为当前时间。设DateField.auto_now_add当对象第一次被创建时自动设置当前时间。
6. DateTimeField:   日期时间类型。映射到数据库中的是datetime类型,在使用的时候,传递datetime.datetime()进去。

例子:

class Test(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()
    note = models.TextField()
    gender = models.BooleanField(default=True)
    create_time = models.DateField(auto_now_add=True)  # 插入数据时,会修改时间
    update_time = models.DateTimeField(auto_now=True) # 更新数据时,会修改时间