支持HW团队,就支付宝领取下面的红包吧! (打开支付宝就能领取!er1OEj73Uj), (打开支付宝收索“516503473”), 你领取消费,HW有奖励。红包使用无条件限制,有条件请注意是不是有病毒。

Login or Sign up | Validate
| Search

博主:初学MPEG

初学MPEG 本博客-采用Python的web框架Django与Mysql数据库,致力于对Python、Django的了解 与研究
Django技术QQ群:XXXXXXX
Python技术QQ群:XXXXXXX

Category

Keywords

本站最新博文

友情链接  

【转】Django 模型(Model)字段类型级参数详解

类别:其他 状态:游客可见,可回,会员可关联(没审核) 阅读:156 评论:0 时间:March 31, 2019, 8:48 a.m.
关键字:

 来源:https://blog.csdn.net/u013967628/article/details/82997561

Django 模型(Model)字段类型级参数详解
 
序号
 
字段类型(Filed Types)
 
描述
 
1
 
AutoField
 
根据可用id自动递增的整数字段。通常不需要直接使用它;如果不指定主键字段,则会自动将主键字段添加到模型中。
 
2
 
CharField
 
用来存储字符串,必须制定范围,如果存储大文本字符串,应当用TextField.
 
3
 
DateField
 
使用Python的datetime.date实例保存的日期。auto_now = True:每次保存对象时,自动设置该字段为当前时间;auto_now_add=True:对象第一次被创建时自动设置当前时间。需要注意的是,自动保存的时间的时区使用的是默认时区。
 
4
 
DateTimeField
 
使用Python的datetime.datetime实例表示的日期和时间。
 
5
 
TextField
 
存储大字符串
 
6
 
BigIntegerField
 
64位的整型数值,从 -2^63 (-9223372036854775808) 到 2^63-1(9223372036854775807)
 
7
 
BinaryField
 
存储二进制码的Field. 只支持bytes 赋值。
 
8
 
BooleanField
 
该字段的默认表单控件是CheckboxInput,如果你需要设置null 值,则使用NullBooleanField 来代替BooleanField。
 
9
 
FloatField
 
用Python的一个float 实例来表示一个浮点数。
 
10
 
UUIDField
 
一个用来存储UUID的字段。使用Python的UUID类。
 
11
 
ForeignKey
 
多对一关系
 
12
 
ManyToManyField
 
多对多关联
 
13
 
OneToOneField
 
一对一关联关系
 
1、null=True      数据库中字段是否可以为空
 
2、blank=True         django的 Admin 中添加数据时是否可允许空值
 
3、primary_key = False
 
主键,对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)
 
fruit = Fruit.objects.create(name='Apple')
>>> fruit.name = 'Pear'
>>> fruit.save()
>>> Fruit.objects.values_list('name', flat=True)
<QuerySet ['Apple', 'Pear']>
4、auto_now 和 auto_now_add
 
auto_now   自动创建---无论添加或修改,都是当前操作的时间
 
auto_now_add  自动创建---永远是创建时的时间
 
5、choices
 
GENDER_CHOICE = (
 
        (u'M', u'Male'),
 
        (u'F', u'Female'),
 
    )
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length      字符串最大长度
 
7、default        默认值
 
8、verbose_name Admin         中字段的显示名称
 
9、name|db_column  数据库中的字段名称
 
10、unique=True  
 
不允许重复,例如用户名注册时候是不允许重复的,在username字段里设置,不让重复
 
11、db_index = True  数据库索引    
 
12、editable=True  在Admin里是否可编辑
 
13、error_messages=None  
 
错误提示   
 
把错误提示修改成你想要的报错,这里加个字典来完成 gender = models.CharField(max_length=2,choices = GENDER_CHOICE,error_messages={"错误类型":"错误原因"})
 
14、auto_created=False  自动创建
 
15、help_text  在Admin中提示帮助信息
 
16、validators=[]    提示区间,例如电话号码范围
 
17、upload-to   文件上传功能 在 FileField 里加入 例如: file = modles.FileField(upload-to = "./upload/"      指明上传的文件防止根目录下的/upload/文件夹下
 
操作:

Please Login (or Sign Up) to leave a comment