尽早发布,经常发布 — Eric S. Raymond, The Cathedral and the Bazaar
次要版本号 (0.0.x) 用于 API 兼容的更改。您应该能够在小点版本之间进行升级,而无需更改任何其他代码。
中等版本号 (0.x.0) 可能包含 API 更改,这与弃用策略一致。在中点版本之间进行升级之前,您应该仔细阅读发布说明。
主要版本号 (x.0.0) 保留给重要的项目里程碑。
REST framework 发布遵循正式的弃用策略,这与 Django 的弃用策略一致。
1.0 版本中出现的功能的弃用时间表如下:
PendingDeprecationWarning
警告。默认情况下,这些警告是静默的,但是当您准备开始迁移任何所需的更改时,可以显式启用这些警告。例如,如果您使用 python -Wd manage.py test
开始运行测试,则您将收到有关您需要进行的任何API更改的警告。DeprecationWarning
,默认情况下声音很大。注意,按照 Django 的策略,文档中没有提到的框架的任何部分通常都应该被视为私有 API,并且可能会发生更改。
要将 Django REST framework 升级到最新版本,请使用 pip:
pip install -U djangorestframework
您可以使用 pip show
确定当前安装的版本:
pip show djangorestframework
日期:2018年10月18日
action
支持 #6081action
文档部分 #6060Router.register
base_name
参数以支持 basename
。#5990Router.get_default_base_name
方法以支持 Router.get_default_basename
。#5990CharField
更改为不允许空字节。#6073 要恢复旧的行为,子类化 CharField
并从验证器中删除 ProhibitNullCharactersValidator
。python class NullableCharField(serializers.CharField): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.validators = [v for v in self.validators if not isinstance(v, ProhibitNullCharactersValidator)]
OpenAPIRenderer
和 generate_schema
管理命令。#6229e.indexOf
不是函数错误 #5982DjangoObjectPermissionsFilter
类,移动到 djangorestframework-guardian
包。#6075日期:2018年4月6日
read_only
+ default
unique_together
验证。#5922日期:2018年4月4日
url_name
行为 #5915list_route
和 detail_route
,维护 url_name
的旧行为,基于 url_path
而不是函数名。日期:2018年4月3日
突破更改:改变 read_only
加上 default
行为。#5886
read_only
字段现在将始终从可写字段中排除。
以前带有 default
值的 read_only
字段将使用 default
值来创建和更新操作。
为了维护旧行为,您可能需要在视图中调用 save()
时传递 read_only
字段的值:
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
或者,您可以根据需要在序列化器上重写 save()
或 create()
或 update()
。
当 required=False 时纠正 allow_null 行为 #5888
没有显式的 default
,allow_null
意味着输出序列化的默认值为 null
。以前这些字段在只读或不需要时被跳过。
如果您依赖于从传出表示中排除的此类字段,则可能向后兼容性中断。为了恢复旧行为,您可以覆盖 data
以便在 None
时排除该字段。
例如:
@property
def data(self):
"""
Drop `maybe_none` field if None.
"""
data = super().data
if 'maybe_none' in data and data['maybe_none'] is None:
del data['maybe_none']
return data
重构动态路由生成,提高视图集动作自省能力。#5705
ViewSets
已经被提供了新的属性和方法,允许它自省它的动作集和当前动作的细节。
list_route
和 detail_route
合并为 action
装饰器。.get_extra_actions()
在 ViewSet
上获取所有额外的操作。url_name
和 url_path
。url_name
现在基于函数名而不是 url_path
,因为路径并不总是合适的 (例如,捕获路径中的参数)。.reverse_action()
方法启用操作 url 反转 (在 3.7.4 中添加)self.reverse_action(self.custom_action.url_name)
detail
initkwarg,以指示当前操作是否在集合或单个实例上操作。额外的变化:
list_route
和 detail_route
以使用带有 detail
布尔值的 action
装饰器。detail
布尔值的 DynamicRoute
。list_route
和 detail_route
维护 url_name
的旧行为,基于 url_path
而不是函数名。修复 3.7.4 发行说明的格式 #5704
文档:更新 DRF 可写嵌套序列化器参考 #5711
文档:修复认证 URL 示例中的拼写错误。#5713
改进复合字段子错误 #5655
禁用 dict/list 字段的 HTML 输入 #5702
修复 HostNameVersioning 文档中的拼写错误 #5709
使用 rsplit 获取导入的模块和类名 #5712
形式化 URLPatternsTestCase #5703
添加异常翻译测试 #5700
测试静态文件 #5701
将 drf-yasg 添加到文档和架构第三方软件包中 #5720
删除未使用的 compat._resolve_model()
#5733
终止不支持 Python 3.2 的兼容解决方法 #5734
喜欢 iter(dict)
胜过 iter(dict.keys())
#5736
将 python_requires
参数传递给 setuptools #5739
从文档中删除未使用的链接 #5735
当可用的链接在文档,首选 https 协议 #5729
添加 HStoreField,postgres 字段测试 #5654
始终完全限定文档中的 ValidationError #5751
从 ManualSchema 中删除无法访问的代码 #5766
允许自定义 API 文档代码示例 #5752
更新文档以使用 pip show
#5757
在模板中加载 ‘static’ 而不是 ‘staticfiles’ #5773
修复了 fields
文档中的拼写错误 #5783
在文档中请参考 “NamespaceVersioning” 而不是 “NamespacedVersioning” #5754
ErrorDetail:添加 __eq__
/__ne__
和 __repr__
#5787
更换文档中 background-attachment: fixed
#5777
使 404 和 403 响应与 exceptions.APIException
输出一致 #5763
对 API 文档的小修正:模式 #5796
修复 PrimaryKeyRelatedField 的模式生成 #5764
将序列化器 DictField 表示为模式中的对象 #5765
添加了文档示例重新实现 ObtainAuthToken #5802
将模式添加到 ObtainAuthToken 视图 #5676
修复请求表单数据处理 #5800
修正 authtoken 视图导入 #5818
更新 pytest,isort #5815 #5817 #5894
修复了对非 ISO8601 日期时间的活跃时区处理。#5833
当值为 0 时,使 TemplateHTMLRenderer 渲染 IntegerField 输入。#5834
修正了教程说明中的端点 #5835
将 Django Rest Framework 角色过滤器添加到第三方软件包 #5809
使用静态资产的单一副本。更新 jQuery #5823
将三元条件更改为符合 PEP308 #5827
添加链接到 ‘A Todo List API with React’ 和 ‘Blog API’ 教程 #5837
修复 ModelSerializer 中的注释错误 #5844
将 admin 添加到已安装的应用程序以避免测试失败。#5870
修复了 SimpleMetadata 中 UUIDField 的模式。#5872
修正路由器上的文档包括命名空间。#5843
使用模型对象测试虚线源默认值。#5880
允许遍历可空相关字段 #5849
补充:教程:使用 React 的 Django REST (Django 2.0) #5891
添加 LimitOffsetPagination.get_count
以允许方法覆盖 #5846
不要在元数据中显示隐藏字段 #5854
启用 OrderingFilter 以处理 “ordering” 字段的空元组 (或列表)。#5899
添加了通用的 500 和 400 JSON 错误处理程序。#5904
日期:2017年12月21日
日期:2017年12月21日
日期:2017年12月21日
日期:2017年12月20日
模式:提取 manual_fields
处理的方法 #5633
允许更轻松地自定义 manual_fields
处理,例如,提供每个方法的手动字段。AutoSchema
添加了 get_manual_fields
作为预期的覆盖点,以及实用的方法 update_fields
,用于处理列表中按名称字段替换,通常,您不应该覆盖该列表。
注意:AutoSchema.__init__
现在确保 manual_fields
是一个列表。以前可能在内部存储为 None
。
删除 ulrparse 兼容性垫片;用六个代替 #5579
为 TimeDelta.total_seconds()
删除兼容包装器 #5577
清理整个项目中的所有空白 #5578
兼容清理 #5581
在可浏览的 API 视图中添加 pygments CSS 块 #5584 #5587
从兼容中删除 set_rollback()
#5591
修复请求主体/POST 访问 #5590
重命名测试以引用正确的问题 #5610
文档修复 #5611 #5612
在文档和代码中删除对不受支持的 Django 版本的引用 #5602
测试序列化器排除已声明的字段 #5599
修复了过滤后端的模式生成 #5613
ModelSerializer 测试的小清理 #5598
重新实现请求属性访问 w/__getattr__
#5617
修复了 SchemaJSRenderer 渲染无效的 Javascript #5607
使 Django 2.0 支持官方/显式 #5619
对传递的请求参数执行类型检查 #5618
修复请求验证器上的 AttributeError 隐藏 #5600
更新测试要求 #5626
文档:Serializer._declared_fields
启用修改序列化器上的字段 #5629
修复打包 #5624
修复 PyPI 的 readme 渲染,向 CI 添加 readme 构造 #5625
更新教程 #5622
带有 allow_null=True
的非必需字段不应该表示默认值 #5639
文档:添加 allow_null
序列化输出注释 #5641
更新在 tox.ini 中使用 Django 2.0 版本 #5645
修复 Serializer.data
在提供无效 data
时可浏览 API 渲染 #5646
文档:注意裸露 APIView 上的 AutoSchema 限制 #5649
将 .basename
和 .reverse_action()
添加到 ViewSet #5648
文档:修复序列化器文档中的拼写错误 #5652
修复 override_settings
兼容 #5668
添加 DEFAULT_SCHEMA_CLASS 设置 #5658
添加文档说明重新生成等于 required=False
的 BooleanField #5665
添加 ‘dist’ 构建 #5656
修复 docstring 中的拼写错误 #5678
文档:添加 UNAUTHENTICATED_USER = None
注释 #5679
从 “记录您的 API” 更新 OPTIONS 示例 #5680
文档:添加 FBVs 关于对象权限的说明 #5681
文档:向 to_representation
文档添加示例 #5682
在文档中添加链接到高级 DRF #5683
文档 ViewSet.action #5685
修复模式文档拼写错误 #5687
修复模式生成中的 URL 模式解析 #5689
添加使用 source ='*'
的示例到自定义字段文档。#5688
修复 Django 2 path() 路由的 format_suffix_patterns 行为 #5691
日期:2017年11月6日
AppRegistryNotReady
错误 #5567日期:2017年11月6日
allow_null=True
的字段应该意味着默认的序列化值 #5518drf_create_token
命令的测试覆盖率 #5550wheel
] 部分重命名为 [bdist_wheel
],因为前者是遗留的 #5557日期:2017年10月16日
source
字段提供默认值 #5489日期:2017年10月6日
修复 DjangoModelPermissions
,以确保在调用视图的 get_queryset()
方法之前进行用户身份验证。作为副作用,这会更改 HTTP 方法权限和身份验证检查的顺序,并且只有在进行身份验证时才会返回 405 响应。如果您想复制旧的行为,请参阅 PR 以获取详细信息。#5376
弃用 APIView
和 api_view
装饰器上的 exclude de_from_schema
。酌情地设置 schema = None
或 @schema(None)
。#5422
时区已知的 DateTimeFields
现在在序列化期间遵循活动或默认时区,而不总是使用 UTC。#5435
解决了不一致问题,实例被提供的 datetime 序列化以进行 create
,但使用 UTC 进行 retrieve
。#3732
如果依赖于 UTC 的 datetime 字符串,则可能会出现向后兼容中断。如果需要,让客户端解释 datetimes 或将默认或活跃时区 (文档) 设置为 UTC。
删除了与弃用策略内联的 DjangoFilterBackend。请改用 django_filters.rest_framework.FilterSet
和/或 django_filters.rest_framework.DjangoFilterBackend
。#5273
不要在编码时剥离微秒。与 datetime
保持一致。BC 变化:以前只有毫秒被编码。#5440
添加了 STRICT_JSON
设置 (默认为 True
) 来引发 Python 的 json
模块所接受的扩展浮动值 (nan
,inf
,-inf
) 的异常。BC 变化:以前,这些值将转换为相应的字符串。将 STRICT_JSON
设置为 False
以恢复先前的行为。#5265
在 CursorPaginator 类中添加对 page_size
参数的支持 #5250
默认情况下,让 DEFAULT_PAGINATION_CLASS
为 None
。BC 变化:如果您只设置 PAGE_SIZE
来启用分页,则需要添加 DEFAULT_PAGINATION_CLASS
。以前的默认值是 rest_framework.pagination.PageNumberPagination
。有一个系统检查警告来捕捉这种情况。如果您在每个视图的基础上设置分页类,那么您可以对此保持沉默。#5170
在模式生成中从 get_serializer_fields
捕获 APIException
。#5443
使用 include_docs_urls
时,允许自定义身份验证和权限类 #5448
推迟在验证器上翻译字符串评估。#5452
将 ‘detail’ 参数的默认值添加到 ‘ValidationError’ 异常中 #5342
调整模式 get_filter_fields 规则以匹配框架 #5454
更新测试矩阵以添加 Django 2.0 并删除 Django 1.8 和 1.9 BC 变化:这将从 Django REST Framework 支持的版本中删除 Django 1.8 和 Django 1.9。#5457
修复了serializers.ModelField中的弃用警告 #5058
当 get_queryset
返回 None
时,添加了更明确的错误消息 #5348
修复响应 data
描述的文档 #5361
修复 pycache/.pyc 在包装时排除 #5373
修复点源的默认值处理 #5375
当将空主体传递给 RequestFactory 时,确保设置了 content_type #5351
修复 ErrorDetail 文档 #5380
允许通用内容表单中的可选内容 #5372
更新了 NullBooleanField 的受支持值 #5387
模型上使用 source 修复 ModelSerializer 自定义命名字段 #5388
修复 MultipleFieldLookupMixin 文档示例,以正确检查对象级权限 #5398
更新 permissions.md 中的 get_object() 示例 #5401
修正 authtoken 管理命令 #5415
修复模式生成 markdown #5421
允许动态设置 ChoiceField.choices #5426
将项目布局添加到快速入门 #5434
在 “render_markdown” templatetag 中重用 “apply_markdown” 函数 #5469
在文档中添加链接到 drf-openapi 包 #5470
添加了用 pygments 高亮显示的文档字符串代码 #5462
修复了名为 data
的视图的文档渲染 #5472
文档:澄清 “to_internal_value()” 验证行为 #5466
修复 APIException.str 上丢失的 six.text_type() 调用 #5476
文档 documentation.py #5478
修复模式生成中的命名冲突 #5464
使用请求对象调用 Django 的身份验证函数 #5295
将 coreapi JS 更新为 0.1.1 #5479
is_list_view
是否能够识别 RetrieveModel… views #5480
删除 Django 1.8 和 1.9 兼容性代码 #5481
从 DefaultRouter 中删除已弃用的模式代码 #5482
重构模式生成以允许按视图自定义。BC 变化:SchemaGenerator.get_serializer_fields
已被重构为 AutoSchema.get_serializer_fields
并删除了 view
参数
日期:2017年8月21日
HTML_CUTOFF
设置为 None
时的异常。#5174multipart/form-data
。#5176test_hyperlinked_related_lookup_url_encoded_exists
。#5179list_route
和 detail_route
在 url_path
中包含大括号 #5187日期:2017年5月12日
get_limit
以返回所有记录。#4437page_size
属性的分页器解决 SchemaGenerator 错误。#5086 #3692.as_view()
传递给视图实例。#5053extra_kwargs
中使用 ‘source’。#4688日期:2017年3月10日
mark_safe
。#4952 #4953日期:2017年3月9日
markdown
依赖是可选的。#4947日期:2017年3月9日
日期:2017年2月10日
@list_route
和 @detail_route
端点上的自定义视图名称。#4821prefetch_related
时 PUT
请求的返回响应。#4661 #4668日期:2016年11月7日
autofocus
支持。#4650日期:2016年11月1日
get_full_details()
支持。#4627日期:2016年10月21日
rest_framework/compat.py
导入。#4612 #4608 #4601raise
。#4600日期:2016年10月20日
日期:2016年9月21日
RegexField
的回归。#4489 #4490 #2617admin.html
中缺少逗号导致 CSRF 错误。#4472 #4473ResolverMatch.func_name
的问题。#4465 #4462APIClient.get()
#4458日期:2016年8月23日
AdminRenderer
仅显示 PK 相关字段。#4419 #4423日期:2016年8月19日
日期:2016年8月12日
max_numbers=None
。#4377 #4372日期:2016年8月5日
日期:2016年8月5日
request.user.is_authenticated
作为属性而不是方法 #4358 #4354日期:2016年7月28日
DefaultRouter
添加 root_renderers
参数。#4323 #4268url
和 schema_url
参数。#4321 #4308 #4305pagination_class = None
的视图的模式生成器。#4314 #4289get_serializer_class
的视图的模式生成器。#4265 #4285Accept
和 Content-Type
标头中的媒体类型参数。#4287 #4313 #4281verbose_name
而不是 object_name
。#4299日期:2016年7月14日
DecimalField
。#4233must_call_distinct
的轻微重构。#4215limit=0
应恢复为默认限制。#4194.validated_data
和 .errors
的空用例作为 ListSerializer 的列表,而不是 dicts。#4180AUTH_USER_MODEL
兼容属性。#4176OrderingFilter
应调用 get_serializer_class()
来确定默认字段。#3964serializer.Field
的 initial
值。#3943field.rel
相关的弃用警告。#3906help_text
。#3812get_serializer_class
。#3487lookup_type
已弃用,支持 lookup_expr
。#4259日期:2016年3月14日。
BooleanField
的垂直 html 布局。感谢 Mikalai Radchuk 的修复。#3910Token
模型修正为 abstract
。感谢 Adam Thomas 的报告。#3860 #3858QueryParameterVersioning
不使用 DEFAULT_VERSION
设置。感谢 Brad Montgomery 的修复。#3833on_delete
。感谢 Mads Jensen 的修复。#3832DateField.to_representation
以便与 Python 2 unicode 一起工作。感谢 Mikalai Radchuk 的修复。#3819TimeField
不处理字符串时间。感谢 Areski Belaid 的修复。#3809Meta.extra_kwargs
。感谢 Kevin Massey 的报告和修复。#3805 #3804django-crispy-forms
避免 CSRF 和缺少按钮问题。感谢 Emmanuelle Delescolle,JoséPadilla 和 Luis San Pablo 的报告,分析和修复。#3787 #3636 #3637DecimalField
中的 Min/MaxValueValidator
传输。感谢 Kevin Brown 的修复。#3774AutoFilterSet
以继承 default_filter_set
。感谢 Tom Linford 的修复。#3753DateTimeField
无法正确处理空值。感谢 Mick Parker 的报告和修复。#3731 #3726_get_reverse_relationships()
以使用正确的 to_field
。感谢 Benjamin Phillips 的修复。#3696RelatedField
的 get_queryset
的使用。感谢 Ryan Hiebert 的修复。#3605日期:2015年12月14日。
ListField
强制输入是一个列表。#3513pagination.PageNumberPagination
中设置自定义 Django Paginator。#3631 #3684to_fields
属性的关系字段。#3635 #3634template.render
弃用警告。#3654NestedBoundField
以在渲染其表单时处理空字符串。#3677日期:2015年11月4日。
request.POST
时解决解析错误 #3592to_field
。#3593filter_class
时,允许过滤 HTML 去渲染。#3560日期:2015年10月28日。
ModelSerializer
关系字段时正确映射 to_field
。#3526FilePathField
映射到序列化器字段时包含关键字参数。#3536ModelSerializer
唯一性约束上映射适当的模型 error_messages
。#3435TextField
映射的 ModelSerializer
字段的 max_length
约束。#3509日期:2015年10月27日。
username
。#3550日期:2015年9月21日。
ViewSet.search_fields
属性。#3324 #3323allow_empty
无法在带有 many=True
的序列化器上工作。#3361 #3364DurationField
接受整数。#3359ListField
截断 #3415 #2761日期:2015年8月24日。
html_cutoff
和 html_cutoff_text
。#3313SearchFilter
。#3316IPAddressField
的重复验证消息。#3249 #3250LimitOffsetPagination
的错误 #3303日期:2015年8月13日。
display_value()
方法,以便在显示关系字段选择输入时使用。#3254BooleanField
复选框错误显示为已选中的问题。#3258BooleanField
正确设置为 False
。#2776WSGIRequest.FILES
属性,而不引发不正确的已弃用错误。#3261日期:2015年8月7日。
1
,0
渲染为 true
,false
。#3227request.FILES
与 Django 的 HTTPRequest
类兼容。#3239日期:2015年8月6日。
AdminRenderer
。#2926FilePathField
。#1854allow_empty
添加到 ListField
。#2250source=
。#2690ListField(allow_null=True)
现在允许 null 作为列表值,而不是列表中的空项。#2766ManyToMany()
映射到 allow_empty=False
,ManyToMany(blank=True)
映射到 allow_empty=True
。#2804OPTIONS
请求支持嵌套表示。#2915OPTIONS
请求的视图集设置 view.action == "metadata"
。#3115UUIDField
上的 allow_blank
。DecimalField
验证。#3139trim_whitespace=True
一起使用时 allow_blank=False
的行为。#2712allow_blank
参数的问题。#3011TokenAuthentication
的标头中包含的无效字符时的 UnicodeDecodeError
。#2928@non_atomic_requests
装饰器修复事务回滚。#3016SearchFilter
修复 Oracle 数据库的重复结果问题。#2935"url": null
的未保存的文件对象。#2759HStoreField
以在 DictField
映射中包含 allow_blank=True
。#2659日期:2015年6月4日。
DurationField
。#2481 #2989format
参数添加到 UUIDField
。#2788 #3000MultipleChoiceField
使用 multipart/form-data 错误地对部分更新进行清空 #2993 #2894RelatedField
相关的选项中的错误。#2981 #2811unique_together
关系的嵌套序列化器。#2975ChoiceField/MultipleChoiceField
表示的意外值。#2839 #2940ATOMIC_REQUESTS
,则在错误时回滚事务。#2887 #2034DecimalField
接受 2E+2
作为 200 并正确验证小数位。#2948 #2947username
的自定义 UserModel
支持基本身份验证。#2952IPAddressField
的改进。#2747 #2618 #3008DecimalField
,以便更容易子类化。#2695日期:2015年5月13日。
DateField.to_representation
可以处理字符串和空值。#2656 #2687 #2869ModelSerializer
与抽象模型一起使用时,会引发错误。#2757 #2630HyperLinkedRelatedField
中处理非 API view_name 的逆转 #2724 #2711.model
属性 #2818IntegerField
以使用编译的十进制正则表达式。#2853queryset
引发 AssertionError。#2862DjangoModelPermissions
依赖于 get_queryset
。#2863AcceptHeaderVersioning
与内容协商核对。#2868DjangoObjectPermissions
使用定义 get_queryset
的视图。#2905日期:2015年3月23日。
serializer_class
,即使在视图中不存在 get_serializer
方法,也可以在可浏览的 API 中显示输入表单。#2743AuthTokenSerializer
的密码输入。#2741lookup_url_kwarg
处理。#2685 #2591apps.py
中导入 rest_framework.views
的问题 #2678PAGE_SIZE
,LimitOffsetPagination 会引发 TypeError
#2667 #2700min_value
字段错误消息的德语翻译引用 max_value
。#2645MergeDict
。#2640日期:2015年3月5日。
日期:2015年2月10日。
_closable_objects
破坏序列化的错误。#1850 #2492Throttling
的非标准 User
模型。#2524User.db_table
。#2479Request
对象上误导性的 AttributeError
回溯。#2530 #2108ManyRelatedField.get_value
清除字段。#2475detail_route
和 list_route
可变参数。#2518TokenAuthentication
中获取令牌时预取用户对象。#2519日期:2015年1月28日。
DictField
并支持 Django 1.8 HStoreField
。#2451 #2106UUIDField
并支持 Django 1.8 UUIDField
。#2448 #2433 #2432BaseRenderer.render
现在引发 NotImplementedError
。#2434ResultDict
和 ResultList
现在表现为标准的字典/列表。#2421HiddenField
。#2410RelatedField.choices
使用 OrderedDict
。#2408HTTP_X_FORWARDED_FOR
时的识别格式。#2401FileUploadParser
。#2399ReturnDict
的缓存问题。#2360日期:2015年1月8日。
models.DateField
上的 MinValueValidator
。#2369DefaultRouter
现在支持命名空间的路由器 URL。#2351required=False
允许输出值的遗漏。#2342models.TextField
使用 textarea 输入。#2340ListSerializer
进行分页。#2331 #2327exclude
中的字段是模型字段。#2319IntegerField
和 max_length
参数不兼容。#2317format_suffix_patterns
以用于 Django 的 i18n_patterns
。#2278url_path
为自定义操作定制路由器 URL。#2010日期:2014年12月17日。
request.user
可用于响应中间件。#2155logout()
还取消了任何现有的 force_authenticate
。#2218 #2259CharField
的 min_length
消息。#2255repr
上发生的 UnicodeDecodeError
。#2270 #2279SlugRelatedField
在用作多选输入时引发 UnicodeEncodeError
。#2290日期:2014年12月11日。
create()
失败时,更有用的错误消息。#2013FileUploadParser
打破空文件名和多个上传处理程序。#2109BindingDict
以支持标准的 dict 函数。#2135 #2163ListSerializer
添加 validate()
。#2168 #2225 #2232FileField
添加缺少的默认样式。#2172ViewSet.as_view()
时需要操作。#2175ChoiceField
添加 allow_blank
。#2184 #2239fields
不是字符串列表,则引发错误。#2193 #2213validated_attrs
参数在 Serializer
create()
/update()
中被重命名为 validated_data
。#2197fields
不是字符串列表,则引发错误。#2213日期:2014年12月1日
有关完整详细信息,请参阅 3.0 发布公告。
有关较早的发行说明,请参阅 2.x 版文档。