Carlton Gibson
e34fd995cd
Made TemplateHTMLRenderer render IntegerField inputs when value is 0
. ( #5834 )
...
* Fix 0 value IntegerField in TemplateHTMLRenderer
Signed-off-by: Nikhil Sheoran <nikhilsheoran96@gmail.com>
* Remove unnecessary `field.value != “”` check
* Adjust test case
Uses `vertical` templates only.
2018-02-16 16:48:20 +01:00
Carlton Gibson
da535d31dd
Fixed active timezone handling for non ISO8601 datetimes. ( #5833 )
...
* Add failing test for to_representation with explicit default timezone
See discussion here:
https://github.com/encode/django-rest-framework/pull/5435#issuecomment-364054509
* Always run enforce_timezone
2018-02-16 16:47:49 +01:00
Daniel Hahler
2854679f56
Upgrade isort ( #5817 )
...
* Fix isort
* runtests: add --diff to ISORT_ARGS
* requirements-codestyle: bump isort to 4.3.3
* isort: move config to setup.cfg
2018-02-14 20:12:14 +00:00
Kent Kawashima
d82b332a09
Changes ternary conditionals to be PEP308 compliant ( #5827 )
2018-02-14 14:06:09 +00:00
Carlton Gibson
7d0d22ffaa
Use single copy of static assets. Update jQuery ( #5823 )
...
* Move font-awesome to top level.
* Use top-level jQuery & Bootstrap
* Update to jQuery v3.3.1
Compatible with Bootstrap v3.3.7
c.f. https://github.com/twbs/bootstrap/issues/16834#issuecomment-251996660
* Re-add bootstrap-theme
2018-02-12 14:14:44 +00:00
Ryan P Kilby
1bc826e6fd
Fix authtoken views imports ( #5818 )
2018-02-07 14:46:17 -05:00
Ryan P Kilby
c456b3c510
Fix request formdata handling ( #5800 )
...
* Rename 'wsgi' request test to more accurate 'http'
* Test duplicate request stream parsing
* Fix setting post/files on the underlying request
2018-02-05 16:24:13 +01:00
Paulo Scardine
0d5a3a00b0
Add schema to ObtainAuthToken
...
Add encoding parameter to ManualSchema
Closes #5676
* Fixed lint errors
* Added docs for ManualSchema encoding parameter
2018-02-05 16:16:42 +01:00
Jeremy Lainé
a8d129b7da
Represent serializer DictField as an Object in schema
...
DictFields were incorrectly being output as String in the schema.
This pull request outputs an Object instead and adds a unit test.
Update s/detail_route/action/ after rebase
2018-02-01 16:23:24 +01:00
Jeremy Lainé
27f32faee4
Fix schema generation for PrimaryKeyRelatedField ( #5764 )
...
By default all subclasses of RelatedField are output as string fields in
the schema, which works well for StringRelatedField, SlugRelatedField or
HyperlinkedRelatedField.
Handle the common case of a PrimaryKeyRelatedField pointing to an
AutoField.
2018-02-01 16:14:35 +01:00
Si Feng
df77f7bb9d
Make 404 & 403 responses consistent with exceptions.APIException
output ( #5763 )
2018-01-30 22:10:02 +00:00
Daniel Hahler
769bc1336f
ErrorDetail: add __eq__/__ne__ and __repr__ ( #5787 )
...
This adds `__eq__` to handle `code` in comparisons.
When comparing an ErrorDetail to a string (missing `code` there) the
ErrorDetail's `code` is ignored, but otherwise it is taken into account.
2018-01-30 08:45:09 +01:00
Jon Dufresne
052a20cd7b
Load 'static' instead of 'staticfiles' in templates ( #5773 )
2018-01-26 00:43:55 -05:00
Ryan P Kilby
73203e6b59
Rework dynamic list/detail actions ( #5705 )
...
* Merge list/detail route decorators into 'action'
* Merge dynamic routes, add 'detail' attribute
* Add 'ViewSet.get_extra_actions()'
* Refactor dynamic route checking & collection
* Refactor dynamic route generation
* Add 'ViewSet.detail' initkwarg
* Fixup schema test
* Add release notes for dynamic action changes
* Replace list/detail route decorators in tests
* Convert tabs to spaces in router docs
* Update docs
* Make 'detail' a required argument of 'action'
* Improve router docs
2018-01-25 09:40:49 +01:00
Carlton Gibson
a540acdc95
Allowed customising API documentation code samples ( #5752 )
...
* Allowed additional languages in API documentation
* Documented renderer_classes parameter and customising languages.
2018-01-25 09:39:03 +01:00
Jeremy Lainé
588b61e171
Remove unreachable code from ManualSchema ( #5766 )
...
ManualSchema.get_link had two return statements. Prune the second
(unreachable) return.
2018-01-24 08:52:33 +01:00
Ryan P Kilby
2709de1310
Add HStoreField, postgres fields tests ( #5654 )
...
* Test postgres field mapping
* Add HStoreField
* Ensure 'HStoreField' child is a 'CharField'
* Add HStoreField docs
2018-01-15 15:52:30 +01:00
Jon Dufresne
d3f3c3d9c1
Prefer https protocol for links in docs when available
2018-01-15 15:15:21 +01:00
Jon Dufresne
ffe3dbb1b1
Perfer iter(dict) over iter(dict.keys()) ( #5736 )
...
Calling dict.keys() is unnecessary. The two are functionally equivalent
on modern Pythons.
Inspired by Lennart Regebro's talk "Prehistoric Patterns in Python" from
PyCon 2017.
https://www.youtube.com/watch?v=V5-JH23Vk0I
2018-01-08 09:49:46 +00:00
Jon Dufresne
c1848d765d
Drop compat workaround for unsupported Python 3.2 ( #5734 )
2018-01-08 10:45:29 +01:00
Jon Dufresne
06e2ad0b7d
Remove unused compat._resolve_model() ( #5733 )
...
Last use removed in c674687782
.
2018-01-08 09:19:08 +00:00
Ryan P Kilby
b65967711c
Formalize URLPatternsTestCase ( #5703 )
...
* Add formalized URLPatternsTestCase
* Update versioning tests w/ new URLPatternsTestCase
* Cleanup router tests urlpatterns
* Add docs for URLPatternsTestCase
2018-01-02 11:14:25 +01:00
David De Sousa
6b0bf72bb8
using rsplit to get module and classname for imports ( #5712 )
2018-01-02 10:59:08 +01:00
Ryan P Kilby
b7ed645927
Disable HTML inputs for dict/list fields ( #5702 )
2018-01-02 10:50:49 +01:00
Ryan P Kilby
6bd773e7f8
Improve composite field child errors ( #5655 )
...
* Fixup DictField test descriptions
* Nest ListField/DictField errors under the idx/key
* Add nested ListField/DictField tests
2018-01-02 10:45:59 +01:00
Xavier Ordoquy
955a6b902b
Add 3.7.7 release notes
2017-12-21 12:45:54 +01:00
Tom Christie
65791d8c79
Version 3.7.5. Add missing .ico to packaging.
2017-12-21 10:17:59 +00:00
Tom Christie
3a22b1d1f0
Version 3.7.5
2017-12-21 10:03:41 +00:00
Carlton Gibson
a81e60ff39
Version 3.7.4 Release ( #5650 )
...
* Update version for 3.7.4 Release
* Add release notes to 01587b9eb1
* Django 2.0 is now final.
* Add trove classifer for Django 2.0
* Finalise release notes for v3.7.4
* Set release date: December 20, 2017
* Update Transifex
* Add release note for #5691
* Move Issue links to bottom
2017-12-20 15:28:31 +01:00
Cristi Vîjdea
6de12e574e
Fix format_suffix_patterns behavior with Django 2 path() routes ( #5691 )
...
* Add failing test for #5672
* Add get_original_route to complement get_regex_pattern
* [WIP] Fix path handling
* needs more tests
* maybe needs some refactoring
* Add django 2 variant for all tests and fix trailing slash bug
* Add more combinations to mixed path test
2017-12-20 13:17:54 +01:00
Tilmann Becker
d38b94fd74
Fix URL pattern parsing in schema generation ( #5689 )
...
* Fix url parsing in schema generation
- Call `str(pattern)` to get non-escaped route
- Strip converters from path to comply with uritemplate format.
Background: https://github.com/encode/django-rest-framework/issues/5675#issuecomment-352829363
Fixes #5675
2017-12-20 09:10:28 +01:00
Pavlin Gergov
21a9740156
Fix typo in docstring ( #5678 )
2017-12-19 08:45:33 +01:00
Carlton Gibson
791539acec
Add DEFAULT_SCHEMA_CLASS setting ( #5658 )
...
* Add test for new setting
* Add DefaultSchema utility
* Add new setting to docs
2017-12-14 11:24:21 +01:00
Carlton Gibson
4a200d5e66
Fix override_settings
compat ( #5668 )
...
* Add test checking override_settings compat
* Refresh APISettings, rather than replace
Fix suggested by @daggaz https://github.com/encode/django-rest-framework/issues/2466#issuecomment-344297213
2017-12-14 10:33:48 +01:00
Ryan P Kilby
7855d3bd8b
Add '.basename' and '.reverse_action()' to ViewSet ( #5648 )
...
* Router sets 'basename' on ViewSet
* Add 'ViewSet.reverse_action()' method
* Test router setting initkwargs
2017-12-04 11:55:49 +01:00
Carlton Gibson
a0cdba6277
Extract method for manual_fields
processing ( #5633 )
...
* Extract method for `manual_fields` processing
Allows reuse of logic to replace Field instances in a field list by `Field.name`.
Adds a utility function for the logic plus a wrapper method on `AutoSchema`.
Closes #5632
* Manual fields suggestions (#2 )
* Use OrderedDict in inspectors
* Move empty check to 'update_fields()'
* Make 'update_fields()' an AutoSchema staticmethod
* Add 'AutoSchema.get_manual_fields()'
* Conform '.get_manual_fields()' to other methods
* Add test for update_fields
* Make sure `manual_fields` is a list.
(As documented to be)
* Add docs for new AutoSchema methods.
* `get_manual_fields`
* `update_fields`
* Add release notes for PR.
2017-12-04 09:07:43 +01:00
Ryan P Kilby
daba5e9ba5
Fix Serializer.data when provided invalid 'data' ( #5646 )
...
* Test serializer/API renderer for invalid datatype
* Fix Serializer.data with invalid input datatype
2017-12-04 08:39:55 +01:00
Rômulo Oliveira
905a5579df
Non-required fields with 'allow_null=True' should not imply a default value ( #5639 )
...
Ref #5518 .
2017-12-01 09:54:25 +01:00
Akshar Raaj
224d8cfb9d
Serializer._declared_fields enable modifying fields on a serializer
...
instance without affecting every other serializer instance.
2017-11-27 13:38:18 +05:30
Ryan P Kilby
5c19652080
Fix whitespace in imports
2017-11-25 21:10:30 -05:00
Ryan P Kilby
7b58a2c124
Fix bare except statements
2017-11-25 21:06:13 -05:00
Ryan P Kilby
c63e35cb09
Fix AttributeError hiding on request authenticators ( #5600 )
...
* Update assertion style in user logout test
* Apply middlewares to django request object
* Fix test for request auth hiding AttributeErrors
* Re-raise/wrap auth attribute errors
* Fix test for py2k
* Add docs for WrappedAttributeError
2017-11-23 08:58:04 +01:00
Ryan P Kilby
a91361dd2f
Perform type check on passed request argument ( #5618 )
...
* Add test for wrapped request instance
* Add 'request' argument type check to Request init
* Fix metadata tests' request object
2017-11-23 08:57:31 +01:00
Sander Steffann
d71bd57b64
SchemaJSRenderer renders invalid Javascript ( #5607 )
...
* SchemaJSRenderer renders invalid Javascript
Under Py3 the base64.b64encode() method returns a binary object, which gets rendered as `b'...'` in schema.js. This results in the output becoming:
var coreJSON = window.atob('b'eyJf...'');
which is invalid Javascript. Because base64 only uses ASCII characters it is safe to decode('ascii') it. Under Py2 this will result in a unicode object, which is fine. Under Py3 it results in a string, which is also fine. This solves the problem and results in a working schema.js output.
* Add regression test for #5608
* Add regression test for #5608
* Apparently the linter on Travis wants the imports in a different order than on my box...
2017-11-22 15:47:03 +01:00
Ryan P Kilby
1a667f420d
Reimplement request attribute access w/ __getattr__ ( #5617 )
...
* Add tests for proxying WSGIRequest attributes in Request.
* Add request attribute exception test
* Reimplement request attribute access
2017-11-22 11:42:59 +01:00
Michał Bielawski
134a6f66f9
Fixed schema generation for filter backends ( #5613 )
2017-11-22 00:11:59 -05:00
Ryan P Kilby
a3df1c1199
Test Serializer exclude for declared fields ( #5599 )
...
* Test current behavior of exclude+declared field
* Assert declared fields are not present in exclude
2017-11-20 09:51:16 +01:00
Jon Dufresne
ff556a91fd
Remove references to unsupported Django versions in docs and code ( #5602 )
...
Per the trove classifiers, DRF only supports Django versions 1.10+. Can
drop documentation, code comments, and workarounds for older Django
versions.
2017-11-20 09:35:54 +01:00
Ryan P Kilby
9f66e8badd
Fix request body/POST access ( #5590 )
...
* Modernize middleware tests
* Added a failing test for #5582
* Set data ref on underlying django request
2017-11-15 20:58:37 +01:00
Ryan P Kilby
15024f3f07
Remove set_rollback() from compat ( #5591 )
...
* Remove Django 1.6 transaction compat
* Move set_rollback from compat => views
2017-11-14 09:55:59 +01:00