11 KiB
Release Notes
Release Early, Release Often
— Eric S. Raymond, The Cathedral and the Bazaar.
Versioning
Minor version numbers (0.0.x) are used for changes that are API compatible. You should be able to upgrade between minor point releases without any other code changes.
Medium version numbers (0.x.0) may include minor API changes. You should read the release notes carefully before upgrading between medium point releases.
Major version numbers (x.0.0) are reserved for project milestones. No major point releases are currently planned.
2.1.x series
Master
- Support json encoding of timedelta objects.
- Bugfix: Support nullable FKs with
SlugRelatedField.
2.1.16
Date: 14th Jan 2013
- Deprecate
django.utils.simplejsonin favor of Python 2.6's built-in json module. - Bugfix:
auto_now,auto_now_addand othereditable=Falsefields now default to read-only. - Bugfix: PK fields now only default to read-only if they are an AutoField or if
editable=False. - Bugfix: Validation errors instead of exceptions when serializers receive incorrect types.
- Bugfix: Validation errors instead of exceptions when related fields receive incorrect types.
- Bugfix: Handle ObjectDoesNotExist exception when serializing null reverse one-to-one
Note: Prior to 2.1.16, The Decimals would render in JSON using floating point if simplejson was installed, but otherwise render using string notation. Now that use of simplejson has been deprecated, Decimals will consistently render using string notation. See #582 for more details.
2.1.15
Date: 3rd Jan 2013
- Added
PATCHsupport. - Added
RetrieveUpdateAPIView. - Remove unused internal
save_m2mflag onModelSerializer.save(). - Tweak behavior of hyperlinked fields with an explicit format suffix.
- Relation changes are now persisted in
.save()instead of in.restore_object(). - Bugfix: Fix issue with FileField raising exception instead of validation error when files=None.
- Bugfix: Partial updates should not set default values if field is not included.
2.1.14
Date: 31st Dec 2012
- Bugfix: ModelSerializers now include reverse FK fields on creation.
- Bugfix: Model fields with
blank=Trueare nowrequired=Falseby default. - Bugfix: Nested serializers now support nullable relationships.
Note: From 2.1.14 onwards, relational fields move out of the fields.py module and into the new relations.py module, in order to separate them from regular data type fields, such as CharField and IntegerField.
This change will not affect user code, so long as it's following the recommended import style of from rest_framework import serializers and referring to fields using the style serializers.PrimaryKeyRelatedField.
2.1.13
Date: 28th Dec 2012
- Support configurable
STATICFILES_STORAGEstorage. - Bugfix: Related fields now respect the required flag, and may be required=False.
2.1.12
Date: 21st Dec 2012
- Bugfix: Fix bug that could occur using ChoiceField.
- Bugfix: Fix exception in browseable API on DELETE.
- Bugfix: Fix issue where pk was was being set to a string if set by URL kwarg.
2.1.11
Date: 17th Dec 2012
- Bugfix: Fix issue with M2M fields in browseable API.
2.1.10
Date: 17th Dec 2012
- Bugfix: Ensure read-only fields don't have model validation applied.
- Bugfix: Fix hyperlinked fields in paginated results.
2.1.9
Date: 11th Dec 2012
- Bugfix: Fix broken nested serialization.
- Bugfix: Fix
Meta.fieldsonly working as tuple not as list. - Bugfix: Edge case if unnecessarily specifying
required=Falseon read only field.
2.1.8
Date: 8th Dec 2012
- Fix for creating nullable Foreign Keys with
''as well asNone. - Added
null=<bool>related field option.
2.1.7
Date: 7th Dec 2012
- Serializers now properly support nullable Foreign Keys.
- Serializer validation now includes model field validation, such as uniqueness constraints.
- Support 'true' and 'false' string values for BooleanField.
- Added pickle support for serialized data.
- Support
source='dotted.notation'style for nested serializers. - Make
Request.usersettable. - Bugfix: Fix
RegexFieldto work withBrowsableAPIRenderer.
2.1.6
Date: 23rd Nov 2012
- Bugfix: Unfix DjangoModelPermissions. (I am a doofus.)
2.1.5
Date: 23rd Nov 2012
- Bugfix: Fix DjangoModelPermissions.
2.1.4
Date: 22nd Nov 2012
- Support for partial updates with serializers.
- Added
RegexField. - Added
SerializerMethodField. - Serializer performance improvements.
- Added
obtain_token_viewto get tokens when usingTokenAuthentication. - Bugfix: Django 1.5 configurable user support for
TokenAuthentication.
2.1.3
Date: 16th Nov 2012
- Added
FileFieldandImageField. For use withMultiPartParser. - Added
URLFieldandSlugField. - Support for
read_only_fieldsonModelSerializerclasses. - Support for clients overriding the pagination page sizes. Use the
PAGINATE_BY_PARAMsetting or set thepaginate_by_paramattribute on a generic view. - 201 Responses now return a 'Location' header.
- Bugfix: Serializer fields now respect
max_length.
2.1.2
Date: 9th Nov 2012
- Filtering support.
- Bugfix: Support creation of objects with reverse M2M relations.
2.1.1
Date: 7th Nov 2012
- Support use of HTML exception templates. Eg.
403.html - Hyperlinked fields take optional
slug_field,slug_url_kwargandpk_url_kwargarguments. - Bugfix: Deal with optional trailing slashes properly when generating breadcrumbs.
- Bugfix: Make textareas same width as other fields in browsable API.
- Private API change:
.get_serializernow uses sameinstanceanddataordering as serializer initialization.
2.1.0
Date: 5th Nov 2012
- Serializer
instanceanddatakeyword args have their position swapped. querysetargument is now optional on writable model fields.- Hyperlinked related fields optionally take
slug_fieldandslug_url_kwargarguments. - Support Django's cache framework.
- Minor field improvements. (Don't stringify dicts, more robust many-pk fields.)
- Bugfix: Support choice field in Browseable API.
- Bugfix: Related fields with
read_only=Truedo not require aquerysetargument.
API-incompatible changes: Please read this thread regarding the instance and data keyword args before updating to 2.1.0.
2.0.x series
2.0.2
Date: 2nd Nov 2012
- Fix issues with pk related fields in the browsable API.
2.0.1
Date: 1st Nov 2012
- Add support for relational fields in the browsable API.
- Added SlugRelatedField and ManySlugRelatedField.
- If PUT creates an instance return '201 Created', instead of '200 OK'.
2.0.0
Date: 30th Oct 2012
- Fix all of the things. (Well, almost.)
- For more information please see the 2.0 announcement.
0.4.x series
0.4.0
- Supports Django 1.5.
- Fixes issues with 'HEAD' method.
- Allow views to specify template used by TemplateRenderer
- More consistent error responses
- Some serializer fixes
- Fix internet explorer ajax behavior
- Minor xml and yaml fixes
- Improve setup (e.g. use staticfiles, not the defunct ADMIN_MEDIA_PREFIX)
- Sensible absolute URL generation, not using hacky set_script_prefix
0.3.x series
0.3.3
- Added DjangoModelPermissions class to support
django.contrib.authstyle permissions. - Use
staticfilesfor css files.- Easier to override. Won't conflict with customized admin styles (e.g. grappelli)
- Templates are now nicely namespaced.
- Allows easier overriding.
- Drop implied 'pk' filter if last arg in urlconf is unnamed.
- Too magical. Explicit is better than implicit.
- Saner template variable auto-escaping.
- Tidier setup.py
- Updated for URLObject 2.0
- Bugfixes:
- Bug with PerUserThrottling when user contains unicode chars.
0.3.2
- Bugfixes:
- Fix 403 for POST and PUT from the UI with UserLoggedInAuthentication (#115)
- serialize_model method in serializer.py may cause wrong value (#73)
- Fix Error when clicking OPTIONS button (#146)
- And many other fixes
- Remove short status codes
- Zen of Python: "There should be one-- and preferably only one --obvious way to do it."
- get_name, get_description become methods on the view - makes them overridable.
- Improved model mixin API - Hooks for build_query, get_instance_data, get_model, get_queryset, get_ordering
0.3.1
- [not documented]
0.3.0
- JSONP Support
- Bugfixes, including support for latest markdown release
0.2.x series
0.2.4
- Fix broken IsAdminUser permission.
- OPTIONS support.
- XMLParser.
- Drop mentions of Blog, BitBucket.
0.2.3
- Fix some throttling bugs.
X-Throttleheader on throttling.- Support for nesting resources on related models.
0.2.2
- Throttling support complete.
0.2.1
- Couple of simple bugfixes over 0.2.0
0.2.0
-
Big refactoring changes since 0.1.0, ask on the discussion group if anything isn't clear. The public API has been massively cleaned up. Expect it to be fairly stable from here on in.
-
Resourcebecomes decoupled intoViewandResource, your views should now inherit fromView, notResource. -
The handler functions on views
.get() .put() .post()etc, no longer have thecontentandauthargs. Useself.CONTENTinside a view to access the deserialized, validated content. Useself.userinside a view to access the authenticated user. -
allowed_methodsandanon_allowed_methodsare now defunct. if a method is defined, it's available. Thepermissionsattribute on aViewis now used to provide generic permissions checking. Use permission classes such asFullAnonAccess,IsAuthenticatedorIsUserOrIsAnonReadOnlyto set the permissions. -
The
authenticatorsclass becomesauthentication. Class names change toAuthentication. -
The
emittersclass becomesrenderers. Class names change toRenderers. -
ResponseExceptionbecomesErrorResponse. -
The mixin classes have been nicely refactored, the basic mixins are now
RequestMixin,ResponseMixin,AuthMixin, andResourceMixinYou can reuse these mixin classes individually without using theViewclass.
0.1.x series
0.1.1
- Final build before pulling in all the refactoring changes for 0.2, in case anyone needs to hang on to 0.1.
0.1.0
- Initial release.