模型类定义

  1. from django.db import models
  2. class MOdename(models.Model):
  3. filed1 = models.XXfield()
  4. class Meta:
  5. db_table = ...

所有django模型继承自django.db.models.Model类。其中类属性定义模型字段。
通过Meta子类定义模型元数据,比如数据库表名,数据库默认排序方式等。
常用Meta类的属性如下:
adstract:True or false, 标识是否为抽象基类;
app_label:定义本类所属的应用,比如app_label = ‘myapp’;
db_table:映射的数据表名,比如db_table = ‘moments’;
ordering:该模型的排序字段,可设置多个,字段前增加’-‘则为降序排序;

  1. class Meta:
  2. """按照user_name升序排序和data的倒叙排序"""
  3. ordering = ['user_name', '-data']

unique_together:用来设置不重复的字段组合,必须唯一,可以设置单个字段,也可以设置多个字段(联合唯一),因为unique_together是一个元组;

  1. class Meta:
  2. """定义每个user_name在同一个_data下只能有一条数据表记录"""
  3. unique_together = (("user_name", "_data"),)

verbose_name:设置一个容易理解的对象名称,展示于djando后台
verbose_name_plural:设置一个容易理解的复数对象名称

普通字段类型

普通字段是指模型类中除外键关系外的数据字段属性,所有数据字段的属性都继承自抽象类django.db.models.Field,常见的django预定义字段类型如下:
Autofield:自动递增的整形字段,一般用于充当数据的主键,除非django在模型中指定了别的主键。
BigIntegerField:64位整型字段。
BinaryField:二进制数据字段。
BooleanField:布尔字段,相对应的html标签是
CharField:字符串字段,相对应的html标签是
FloatField:浮点型字段,必传参数maxdigits和decimal_places,用于定义总位数和小数位数
TextField:大容量文本字段,相对应的html标签是多行编辑框