Version 2.3.14

This commit is contained in:
Tom Christie 2014-06-12 11:47:26 +01:00
parent 3dcc6585d2
commit 1386767013
4 changed files with 23 additions and 21 deletions

View File

@ -1,5 +1,3 @@
<a class="github" href="negotiation.py"></a>
# Content negotiation # Content negotiation
> HTTP has provisions for several mechanisms for "content negotiation" - the process of selecting the best representation for a given response when there are multiple representations available. > HTTP has provisions for several mechanisms for "content negotiation" - the process of selecting the best representation for a given response when there are multiple representations available.

View File

@ -40,24 +40,28 @@ You can determine your currently installed version using `pip freeze`:
## 2.3.x series ## 2.3.x series
### 2.3.x ### 2.3.14
**Date**: April 2014 **Date**: 12th June 2014
* Fix nested serializers linked through a backward foreign key relation * **Security fix**: Escape request path when it is include as part of the login and logout links in the browsable API.
* Fix bad links for the `BrowsableAPIRenderer` with `YAMLRenderer` * `help_text` and `verbose_name` automatically set for related fields on `ModelSerializer`.
* Add `UnicodeYAMLRenderer` that extends `YAMLRenderer` with unicode * Fix nested serializers linked through a backward foreign key relation.
* Fix `parse_header` argument convertion * Fix bad links for the `BrowsableAPIRenderer` with `YAMLRenderer`.
* Fix mediatype detection under Python3 * Add `UnicodeYAMLRenderer` that extends `YAMLRenderer` with unicode.
* Web browseable API now offers blank option on dropdown when the field is not required * Fix `parse_header` argument convertion.
* `APIException` representation improved for logging purposes * Fix mediatype detection under Python 3.
* Allow source="*" within nested serializers * Web browseable API now offers blank option on dropdown when the field is not required.
* Better support for custom oauth2 provider backends * `APIException` representation improved for logging purposes.
* Fix field validation if it's optional and has no value * Allow source="*" within nested serializers.
* Add `SEARCH_PARAM` and `ORDERING_PARAM` * Better support for custom oauth2 provider backends.
* Fix `APIRequestFactory` to support arguments within the url string for GET * Fix field validation if it's optional and has no value.
* Allow three transport modes for access tokens when accessing a protected resource * Add `SEARCH_PARAM` and `ORDERING_PARAM`.
* Fix `Request`'s `QueryDict` encoding * Fix `APIRequestFactory` to support arguments within the url string for GET.
* Allow three transport modes for access tokens when accessing a protected resource.
* Fix `QueryDict` encoding on request objects.
* Ensure throttle keys do not contain spaces, as those are invalid if using `memcached`.
* Support `blank_display_value` on `ChoiceField`.
### 2.3.13 ### 2.3.13

View File

@ -8,7 +8,7 @@ ______ _____ _____ _____ __ _
""" """
__title__ = 'Django REST framework' __title__ = 'Django REST framework'
__version__ = '2.3.13' __version__ = '2.3.14'
__author__ = 'Tom Christie' __author__ = 'Tom Christie'
__license__ = 'BSD 2-Clause' __license__ = 'BSD 2-Clause'
__copyright__ = 'Copyright 2011-2014 Tom Christie' __copyright__ = 'Copyright 2011-2014 Tom Christie'

View File

@ -122,7 +122,7 @@ def optional_login(request):
except NoReverseMatch: except NoReverseMatch:
return '' return ''
snippet = "<a href='%s?next=%s'>Log in</a>" % (login_url, request.path) snippet = "<a href='%s?next=%s'>Log in</a>" % (login_url, escape(request.path))
return snippet return snippet
@ -136,7 +136,7 @@ def optional_logout(request):
except NoReverseMatch: except NoReverseMatch:
return '' return ''
snippet = "<a href='%s?next=%s'>Log out</a>" % (logout_url, request.path) snippet = "<a href='%s?next=%s'>Log out</a>" % (logout_url, escape(request.path))
return snippet return snippet