Django 操作数据库三

null
如果为 True ,Django 将用 NULL 来在数据库中存储空值。 默认值是 False .

blank

如果为 True ,该字段允许不填。默认为 False在Django admin 中是否为空

要注意,这与 null 不同。 null 纯粹是数据库范畴的,而 blank 是数据验证范畴的。如果
一个字段的 blank=True ,表单的验证将允许该字段是空值。如果字段的 blank=False ,该字
段就是必填的。

choices  :储存在内存当中,且在django admin 当中会自动生成下拉选择列表

由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置
了choices ,默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是
choices 中的选项

from django.db import models
class Person(models.Model):
    SHIRT_SIZES = (
    ('S', 'Small'),
    ('M', 'Medium'),
    ('L', 'Large'),
    )
    name = models.CharField(max_length=60)
    shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES,default=1)

模版获取choices 的值:https : //my.oschina.net/esdn/blog/832982

primary_key

如果为 True ,那么这个字段就是模型的主键 ,对AutoField设置主键后,就会代替原来的自增 id

如果你没有指定任何一个字段的 primary_key=True ,Django 就会自动添加一个 IntegerField
字段做为主键,所以除非你想覆盖默认的主键行为,否则没必要设置任何一个字段
primary_key=True

from django.db import models
    class Fruit(models.Model):
    name = models.CharField(max_length=100, primary_key=True)

Mysql 数据库默认 ID 为主键,默认情况下,Django 会给每个模型添加  自增主键字段(AutoField)

id = models.AutoField(primary_key=True)

auto_now 和 auto_now_add

  • auto_now   自动创建---无论添加或修改,都是当前操作的时间
  • auto_now_add  自动创建---永远是创建时的时间

注意:1、如果设置auto_now 和 auto_now_add ,Django Admin 后台默认为不显示状态,即不可编辑(editable=False),如果要设置为当前时间,也可以修改,需如下设置

import django.utils.timezone as timezone               # 导入时间模块
dww = models.DateTimeField(default=timezone.now)       # 设置默认为当前时间

2、自动更新的时候,需要使用 xxx.save() ,时间才会自动更新

obj = models.xxx.objects.fillter(id=1).first()
obj.name='admin'
obj.save()

verbose_name  Admin中字段的显示名称
name|db_column  数据库中的字段名称
unique=True  不允许重复 ,唯一索引
db_index = True  数据库索引
editable=True  在Admin里是否可编辑
error_messages=None  错误提示 ,Django Admin 中的错误提示
auto_created=False  自动创建
help_text  在Admin中提示帮助信息
validators=[]    自定义错误信息
upload-to 上传

转载于:https://my.oschina.net/esdn/blog/802623

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值