mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-01-24 16:24:18 +03:00
Merge pull request #3592 from tomchristie/request-parsing-when-post-accessed
Request parsing when .POST accessed
This commit is contained in:
commit
bfdf795843
|
@ -204,7 +204,6 @@ General guides to using REST framework.
|
||||||
* [3.2 Announcement][3.2-announcement]
|
* [3.2 Announcement][3.2-announcement]
|
||||||
* [3.3 Announcement][3.3-announcement]
|
* [3.3 Announcement][3.3-announcement]
|
||||||
* [Kickstarter Announcement][kickstarter-announcement]
|
* [Kickstarter Announcement][kickstarter-announcement]
|
||||||
* [Funding][funding]
|
|
||||||
* [Release Notes][release-notes]
|
* [Release Notes][release-notes]
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
|
@ -4,7 +4,7 @@ The 3.3 release marks the final work in the Kickstarter funded series. We'd like
|
||||||
|
|
||||||
The amount of work that has been achieved as a direct result of the funding is immense. We've added a huge amounts of new functionality, resolved nearly 2,000 tickets, and redesigned & refined large parts of the project.
|
The amount of work that has been achieved as a direct result of the funding is immense. We've added a huge amounts of new functionality, resolved nearly 2,000 tickets, and redesigned & refined large parts of the project.
|
||||||
|
|
||||||
In order to continue driving REST framework forward, we're introducing [monthly paid plans](https://fund.django-rest-framework.org/topics/funding). These plans include various sponsorship rewards, and will ensure that the project remains sustainable and well supported.
|
In order to continue driving REST framework forward, we'll shortly be announcing a new set of funding plans. Follow [@_tomchristie](https://twitter.com/_tomchristie) to keep up to date with these announcements, and be among the first set of sign ups.
|
||||||
|
|
||||||
We strongly believe that collaboratively funded software development yields outstanding results for a relatively low investment-per-head. If you or your company use REST framework commercially, then we would strongly urge you to participate in this latest funding drive, and help us continue to build an increasingly polished & professional product.
|
We strongly believe that collaboratively funded software development yields outstanding results for a relatively low investment-per-head. If you or your company use REST framework commercially, then we would strongly urge you to participate in this latest funding drive, and help us continue to build an increasingly polished & professional product.
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ You can determine your currently installed version using `pip freeze`:
|
||||||
|
|
||||||
### 3.3.0
|
### 3.3.0
|
||||||
|
|
||||||
**Date**: [27th October 2015][3.3.0-milestone]
|
**Date**: [28th October 2015][3.3.0-milestone].
|
||||||
|
|
||||||
* HTML controls for filters. ([#3315][gh3315])
|
* HTML controls for filters. ([#3315][gh3315])
|
||||||
* Forms API. ([#3475][gh3475])
|
* Forms API. ([#3475][gh3475])
|
||||||
|
@ -58,11 +58,17 @@ You can determine your currently installed version using `pip freeze`:
|
||||||
|
|
||||||
## 3.2.x series
|
## 3.2.x series
|
||||||
|
|
||||||
|
### 3.2.5
|
||||||
|
|
||||||
|
**Date**: [27th October 2015][3.2.5-milestone].
|
||||||
|
|
||||||
|
* Escape `username` in optional logout tag. ([#3550][gh3550])
|
||||||
|
|
||||||
### 3.2.4
|
### 3.2.4
|
||||||
|
|
||||||
**Date**: [21th September 2015][3.2.4-milestone].
|
**Date**: [21th September 2015][3.2.4-milestone].
|
||||||
|
|
||||||
* Don't error on missing `ViewSet.search_fields` attribute.([#3324][gh3324], [#3323][gh3323])
|
* Don't error on missing `ViewSet.search_fields` attribute. ([#3324][gh3324], [#3323][gh3323])
|
||||||
* Fix `allow_empty` not working on serializers with `many=True`. ([#3361][gh3361], [#3364][gh3364])
|
* Fix `allow_empty` not working on serializers with `many=True`. ([#3361][gh3361], [#3364][gh3364])
|
||||||
* Let `DurationField` accepts integers. ([#3359][gh3359])
|
* Let `DurationField` accepts integers. ([#3359][gh3359])
|
||||||
* Multi-level dictionaries not supported in multipart requests. ([#3314][gh3314])
|
* Multi-level dictionaries not supported in multipart requests. ([#3314][gh3314])
|
||||||
|
@ -328,6 +334,8 @@ For older release notes, [please see the version 2.x documentation][old-release-
|
||||||
[3.2.2-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.2+Release%22
|
[3.2.2-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.2+Release%22
|
||||||
[3.2.3-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.3+Release%22
|
[3.2.3-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.3+Release%22
|
||||||
[3.2.4-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.4+Release%22
|
[3.2.4-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.4+Release%22
|
||||||
|
[3.2.5-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.2.5+Release%22
|
||||||
|
[3.3.0-milestone]: https://github.com/tomchristie/django-rest-framework/issues?q=milestone%3A%223.3.0+Release%22
|
||||||
|
|
||||||
<!-- 3.0.1 -->
|
<!-- 3.0.1 -->
|
||||||
[gh2013]: https://github.com/tomchristie/django-rest-framework/issues/2013
|
[gh2013]: https://github.com/tomchristie/django-rest-framework/issues/2013
|
||||||
|
@ -552,6 +560,9 @@ For older release notes, [please see the version 2.x documentation][old-release-
|
||||||
[gh3364]: https://github.com/tomchristie/django-rest-framework/issues/3364
|
[gh3364]: https://github.com/tomchristie/django-rest-framework/issues/3364
|
||||||
[gh3415]: https://github.com/tomchristie/django-rest-framework/issues/3415
|
[gh3415]: https://github.com/tomchristie/django-rest-framework/issues/3415
|
||||||
|
|
||||||
|
<!-- 3.2.5 -->
|
||||||
|
[gh3550]:https://github.com/tomchristie/django-rest-framework/issues/3550
|
||||||
|
|
||||||
<!-- 3.3.0 -->
|
<!-- 3.3.0 -->
|
||||||
[gh3315]: https://github.com/tomchristie/django-rest-framework/issues/3315
|
[gh3315]: https://github.com/tomchristie/django-rest-framework/issues/3315
|
||||||
[gh3410]: https://github.com/tomchristie/django-rest-framework/issues/3410
|
[gh3410]: https://github.com/tomchristie/django-rest-framework/issues/3410
|
||||||
|
|
|
@ -63,5 +63,4 @@ pages:
|
||||||
- '3.2 Announcement': 'topics/3.2-announcement.md'
|
- '3.2 Announcement': 'topics/3.2-announcement.md'
|
||||||
- '3.3 Announcement': 'topics/3.3-announcement.md'
|
- '3.3 Announcement': 'topics/3.3-announcement.md'
|
||||||
- 'Kickstarter Announcement': 'topics/kickstarter-announcement.md'
|
- 'Kickstarter Announcement': 'topics/kickstarter-announcement.md'
|
||||||
- 'Funding': 'topics/funding.md'
|
|
||||||
- 'Release Notes': 'topics/release-notes.md'
|
- 'Release Notes': 'topics/release-notes.md'
|
||||||
|
|
|
@ -8,7 +8,7 @@ ______ _____ _____ _____ __
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__title__ = 'Django REST framework'
|
__title__ = 'Django REST framework'
|
||||||
__version__ = '3.2.4'
|
__version__ = '3.3.0'
|
||||||
__author__ = 'Tom Christie'
|
__author__ = 'Tom Christie'
|
||||||
__license__ = 'BSD 2-Clause'
|
__license__ = 'BSD 2-Clause'
|
||||||
__copyright__ = 'Copyright 2011-2015 Tom Christie'
|
__copyright__ = 'Copyright 2011-2015 Tom Christie'
|
||||||
|
|
|
@ -117,9 +117,8 @@ class SessionAuthentication(BaseAuthentication):
|
||||||
Otherwise returns `None`.
|
Otherwise returns `None`.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Get the underlying HttpRequest object
|
# Get the session-based user from the underlying HttpRequest object
|
||||||
request = request._request
|
user = getattr(request._request, 'user', None)
|
||||||
user = getattr(request, 'user', None)
|
|
||||||
|
|
||||||
# Unauthenticated, CSRF validation not required
|
# Unauthenticated, CSRF validation not required
|
||||||
if not user or not user.is_active:
|
if not user or not user.is_active:
|
||||||
|
|
|
@ -365,6 +365,15 @@ class Request(object):
|
||||||
'since version 3.0, and has been fully removed as of version 3.2.'
|
'since version 3.0, and has been fully removed as of version 3.2.'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def POST(self):
|
||||||
|
# Ensure that request.POST uses our request parsing.
|
||||||
|
if not _hasattr(self, '_data'):
|
||||||
|
self._load_data_and_files()
|
||||||
|
if is_form_media_type(self.content_type):
|
||||||
|
return self.data
|
||||||
|
return QueryDict('', encoding=self._request._encoding)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def FILES(self):
|
def FILES(self):
|
||||||
# Leave this one alone for backwards compat with Django's request.FILES
|
# Leave this one alone for backwards compat with Django's request.FILES
|
||||||
|
|
Loading…
Reference in New Issue
Block a user