This month has seen the 3.4.0 and 3.4.1 releases of REST framework.
This includes:
We’re up from 178 tickets at the start of the month, to 192 at the end. I’m planning to keep a focus on triage over August to start bring that number down again.
#4238
- DateTimeField representation should be not only in UTC but also settings.TIME_ZONE etc. Closed#4231
- Optimistic Concurrency and PUT Logic . Closed#4227
- API keys stored in clear text. Closed#4246
- Fix setup.py error on some platforms. Accepted & merged#4233
- Add localize keyword argument to DecimalField
. Accepted & merged#4251
- Replace “class based views” occurrences with “class-based views”. Accepted & merged#4250
- Browsable API Hides POST/PUT Form with Custom Permissions. Closed#4253
- Response Content-Type potentially malformed. Resolved via #4254
#4255
- Two slightly different iso 8601 datetime serialization. *Resolved via #4256*
#4261
- Change incorrect example URL in Tutorial. Accepted & merged#4262
- Prune stale branches. Resolved & closed#4267
- Schema documentation update. Accepted & merged.#4270
- Add LICENSE.md to the built wheel. Accepted & merged.#4284
- Add failing test case for #3788. Reviewed & closed#4275
- Added RangeField. Reviewed & closed#4309
- Fixes bug in APIView with object level permissions. Reviewed & closed#4301
- Django Rest Framework TestCase checking response headers. Reviewed & closed#4295
- Remove outdated resources. Accepted & merged.#4298
- Restore meta information for each search field. Accepted & merged.#4291
- Adding support for RFC 4918 status codes. Accepted & merged.#4302
- SearchFilter raises error when using with related field. Closed via #4298
.#4303
- Fixes ordering bug with related fields in SearchFilter. Closed via #4298
.#4307
- Twitter bootstrap minor update. Accepted & merged.#4300
- Error messages are not fully translated. Closed via #4299
.#4299
- Use verbose_name
instead of object_name
in error messages. Accepted & merged.#4288
- When OneToOneField are primary_key, this field in DRF 3.4 will always be null. Closed via #4272
.#4271
- Add example for message property for custom permissions. Reviewed & closed.#4287
- SwaggerRenderer example doesn’t match the “;version=2.0” part of media_type. Reviewed & closed.#4281
- JSON indent parameter in Accept header ignored. Closed via #4313
.#4289
- Schemas Generator produces error for views with no pagination class. Closed via #4314
.#4293
- SchemaGenerator: ‘ViewSet’ object has no attribute ‘format_kwarg’. Closed via #4315
.#4294
- default=CurrentUserDefault and read_only=True in DRF 3.4.0 broken if unique_together is being used in a Model for a ModelSerializer. Closed via #4316
.#4285
- Fix schema generation for APIView, since it does not have get_serializer_class. Accepted & merged.#4265
- SchemaGenerator fails with message “object has no attribute ‘get_serializer_class’”. Closed via #4285
.#4317
- Return Empty when getting listserializers from empty html input. Reviewed & closed#4320
- The SAFE_METHODS constant is missing the ‘TRACE’ method. Reviewed & closed#4319
- Throttles not instantiated in debug mode. Reviewed & closed#4308
- Add url prefix to DefaultRouter and SchemaGenerator init. Closed via #4321
.#4305
- SchemaGenerator is not using the SCRIPT_NAME in the url. Closed via #4321
.#4311
- Change signature of DateTimeField
and add detail to format
. Closed via #4322
.#4268
- Allow configuration of DefaultRouter’s root view renderer classes. Closed via #4323
.#4328
- A solution to make csrf_exempt
work for views. Reviewed & closed#4254
- Resolve incorrect inclusion of media type parameters#4256
- Don’t strip microseconds in JSON output when returning datetime
instances.#4258
- 3.4.0 Release.#4310
- Test case for #4272.#4313
- Fix json indent parameter.#4314
- Schema support should function when ‘pagination_class = None’.#4315
- Set view.format_kwarg in schema generator.#4316
- Unique together checks should apply to read-only fields which have a default.#4321
- Added url
and schema_url
arguments.#4322
- Improve datetime format docs.#4323
- Added root_renderers argument.Various work on the Python Core API client library, coreapi
.
Separated the Core API command line client into an individual coreapi-cli
package, along with various functionality improvements.
Introduced a plugin interface for Core API codecs, and released the following packages.
openapi-codec
- A decoder and encoder for OpenAPI / Swagger schemas.jsonhyperschema-codec
- A decoder for JSON HyperSchema.hal-codec
- A decoder and encoder for the HAL hypermedia format.corehtml-codec
- An encoder for an HTML formatted output.Work on allowing sponsors to manage their accounts and sponsorship details is planned for the first half of August. I will be notifying sponsors once that becomes available. In the meantime if you want to make any changes, or wish to cancel, please email me at tom@tomchristie.com
Against a baseline of £48,000/yr revenue (not salary) we’re now at around 75% sustainability.
Reaching financial sustainability will have a dramatic effect on the long-term prospects for the project. If you’ve not yet done so, please do consider signing up as a sponsor, at https://fund.django-rest-framework.org/topics/funding/
If you believe your business might consider our sponsorships, but would like some help in making the business case clear, please get in touch.
As ever, thanks to all our sponsors, contributors, and users for your ongoing support.
— Tom Christie, 29st July, 2016.