字段类型
| |
| |
| |
| |
| CharField |
| IntegerField |
| FloatField |
| DecimalField |
| DateTimeField |
| DateField |
| |
| |
| {name:lqz,age:19,hobby:[篮球,足球],wife:{name:lyf,age:38}} |
| ListField |
| DictField |
字段 |
字段构造方式 |
BooleanField |
BooleanField() |
NullBooleanField |
NullBooleanField() |
CharField |
CharField(max_length=None, min_length=None, allow_blank=False, trim_whitespace=True) |
EmailField |
EmailField(max_length=None, min_length=None, allow_blank=False) |
RegexField |
RegexField(regex, max_length=None, min_length=None, allow_blank=False) |
SlugField |
SlugField(maxlength=50, min_length=None, allow_blank=False) 正则字段,验证正则模式 [a-zA-Z0-9-]+ |
URLField |
URLField(max_length=200, min_length=None, allow_blank=False) |
UUIDField |
UUIDField(format=’hex_verbose’) format: 1) 'hex_verbose' 如"5ce0e9a5-5ffa-654b-cee0-1238041fb31a" 2) 'hex' 如 "5ce0e9a55ffa654bcee01238041fb31a" 3)'int' - 如: "123456789012312313134124512351145145114" 4)'urn' 如: "urn:uuid:5ce0e9a5-5ffa-654b-cee0-1238041fb31a" |
IPAddressField |
IPAddressField(protocol=’both’, unpack_ipv4=False, **options) |
IntegerField |
IntegerField(max_value=None, min_value=None) |
FloatField |
FloatField(max_value=None, min_value=None) |
DecimalField |
DecimalField(max_digits, decimal_places, coerce_to_string=None, max_value=None, min_value=None) max_digits: 最多位数 decimal_palces: 小数点位置 |
DateTimeField |
DateTimeField(format=api_settings.DATETIME_FORMAT, input_formats=None) |
DateField |
DateField(format=api_settings.DATE_FORMAT, input_formats=None) |
TimeField |
TimeField(format=api_settings.TIME_FORMAT, input_formats=None) |
DurationField |
DurationField() |
ChoiceField |
ChoiceField(choices) choices与Django的用法相同 |
MultipleChoiceField |
MultipleChoiceField(choices) |
FileField |
FileField(max_length=None, allow_empty_file=False, use_url=UPLOADED_FILES_USE_URL) |
ImageField |
ImageField(max_length=None, allow_empty_file=False, use_url=UPLOADED_FILES_USE_URL) |
ListField |
ListField(child=, min_length=None, max_length=None) |
DictField |
DictField(child=) |
字段参数
| |
| |
| |
| |
| read_only:表明该字段仅用于序列化输出,默认False |
| -如果read_only=True,这个字段只用来做序列化---》把对象---》json给前端 |
| write_only:表明该字段仅用于反序列化输入,默认False |
| -如果read_only=write_only,这个字段只用来做反序列化---》前端json---》存到数据库 |
| |
| |
| |
| name=serializers.CharField(max_length=32,min_length=3) |
| price=serializers.CharField(write_only=True,read_only=True) |
| author=serializers.CharField(write_only=True) |
| |
| |
| |
| |
| |
| |
| |
参数名称 |
作用 |
max_length |
最大长度(CharField) |
min_lenght |
最小长度(CharField) |
allow_blank |
是否允许为空(CharField) |
trim_whitespace |
是否截断空白字符(CharField) |
max_value |
最小值 (IntegerField) |
min_value |
最大值(IntegerField) |
通用参数:
参数名称 |
说明 |
read_only |
表明该字段仅用于序列化输出,默认False |
write_only |
表明该字段仅用于反序列化输入,默认False |
required |
表明该字段在反序列化时必须输入,默认True |
default |
反序列化时使用的默认值 |
allow_null |
表明该字段是否允许传入None,默认False |
validators |
该字段使用的验证器(不太用) |
error_messages |
包含错误编号与错误信息的字典 |
label |
用于HTML展示API页面时,显示的字段名称 |
help_text |
用于HTML展示API页面时,显示的字段帮助提示信息 |
序列化时,定制序列化的字段
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| authors=serializers.ListField() |
序列化类中写
| price_info = serializers.SerializerMethodField() |
| def get_price_info(self, obj): |
| return "价格是:"+str(obj.price) |
表模型中写
| |
| @property |
| def price_info(self): |
| return "价格是:" + str(self.price) |
| |
| |
| price_info=serializers.CharField(read_only=True) |
| |
扩展on_delete:
| on_delete |
| 当删除关联表中的数据时,当前表与其关联的行的行为。 |
| |
| models.CASCADE |
| 删除关联数据,与之关联也删除 |
| |
| models.DO_NOTHING |
| 删除关联数据,引发错误IntegrityError |
| |
| models.PROTECT |
| 删除关联数据,引发错误ProtectedError |
| |
| models.SET_NULL |
| 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) |
| |
| models.SET_DEFAULT |
| 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值) |
| |
| models.SET |
| |
| 删除关联数据, |
| a. 与之关联的值设置为指定值,设置:models.SET(值) |
| b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示