Carlton Gibson
c674687782
Remove Django 1.8 & 1.9 compatibility code ( #5481 )
...
* Identify code that needs to be pulled out of/removed from compat.py
* Extract modern code from get_names_and_managers in compat.py and remove compat code
* Extract modern code from is_authenticated() in compat.py and remove.
* Extract modern code from is_anonymous() in compat.py and remove
* Extract modern code from get_related_model() from compat.py and remove
* Extract modern code from value_from_object() in compat.py and remove
* Update postgres compat
JSONField now always available.
* Remove DecimalValidator compat
* Remove get_remote_field compat
* Remove template_render compat
Plus isort.
* Remove set_many compat
* Remove include compat
2017-10-05 20:41:38 +02:00
Thierry Bastian
760268ade2
Fixed a deprecation warning ( #5058 )
2017-09-27 10:51:45 +02:00
John Eskew
607e4edca7
Defer translated string evaluation on validators. ( #5452 )
...
* Customize validators to defer error string evaluation.
* Add docstring for `CustomValidatorMessage`
2017-09-26 10:02:20 +02:00
Ryan P Kilby
d740bae95a
Update json imports
2017-09-25 09:08:20 +02:00
Carlton Gibson
7d6d043531
Fix DateTimeField TZ handling ( #5435 )
...
* Add failing TZ tests for DateTimeField
- tests "current" timezone activation
- tests output for non-UTC timezones
* Update DateTimeField TZ aware/naive test output
* Fix DateTimeField TZ handling
* Add Release Note for BC change
2017-09-20 12:15:15 +02:00
Jeremy Nauta
c0a48622e1
Allow ChoiceField.choices
to be set dynamically ( #5426 )
...
## Description
The `choices` field for the `ChoiceField` class should be able to be edited after `ChoiceField.__init__` is called.
```
field = ChoiceField(choices=[1,2])
field.choices = [1] # Should no longer allow `2` as a choice
```
Currently, you must update `choices`, `grouped_choices`, and `choice_strings_to_values` to achieve this. This P/R keeps `grouped_choices` and `choice_strings_to_values` in sync whenever the `choices` are edited.
2017-09-20 11:33:50 +02:00
Igor Tokarev
79be20a7c6
Updated supported values for the NullBooleanField ( #5387 )
...
* Updated supported values for the NullBooleanField.
* Added check for unhashable types in NullBooleanField.
2017-09-04 10:11:53 +01:00
Ryan P Kilby
07258ca032
Remove None handling from fields.get_attribute()
2017-08-30 17:42:12 -04:00
kycool
c868378c71
Update fields.py
...
modify to_choices_dict document
2017-08-18 12:12:01 +08:00
Ryan P Kilby
26ebb88306
Revert 3288 ( #5313 )
...
* Add regression test for #2505 . Thanks @pySilver!
* Add regression test for #5087
* Revert "Cached the field's root and context property."
This reverts commit 792005806b
.
2017-08-07 16:52:09 +01:00
Tom Christie
bf7fcc495b
Raise validation error on invalid timezone parsing.
2017-07-10 10:14:31 +01:00
dmmatson
302a9d089e
Fixed tests on Windows. Added unicode support to SlugField
2017-06-23 23:11:17 -06:00
Tom Christie
5ba2368ff9
Merge pull request #4987 from halfstrik/master
...
Added test for DateTimeField validation when server has timezone with…
2017-04-27 17:22:27 +01:00
Tom Christie
33290170e8
Merge pull request #5060 from jpadilla/encode
...
Update links after moving to encode org
2017-04-07 17:20:51 +01:00
José Padilla
c1f31492ae
Update links after moving to encode org
2017-04-07 10:28:35 -04:00
htmis
4a54d9f474
Update Boolean field to more closely match python library
...
Python Reference:
distutils.util.strtobool(val)
Convert a string representation of truth to true (1) or false (0).
True values are y, yes, t, true, on and 1; false values are n, no, f, false, off and 0. Raises ValueError if val is anything else.
2017-03-29 20:21:18 -04:00
Sergey Petrunin
b0a0c30bfe
Added pytz exception in compat module.
...
Mock pytz.timezone localize in tests.
Ref: #4986
2017-03-22 00:03:32 -04:00
Sergey Petrunin
e4a1bd140b
Update error message.
...
Ref: #4986
2017-03-20 18:47:25 -04:00
Sergey Petrunin
d4726dab81
Fix bug for not existent or ambiguous datetime during native to aware conversion in timezone with DST.
...
Ref: #4986
2017-03-18 23:13:26 -04:00
Tibo Beijen
cf5d401a0e
Allow required false and default ( #4692 )
...
* Default value will now be used when serializing if key or attribute is missing.
2017-03-07 13:19:19 +00:00
Lanrik
5986f95c8d
Rearrange code ( #4908 )
...
Minor refactor. Move assignment to after `None` check.
2017-02-20 09:48:19 +00:00
李扬
cbad236f6d
Add max_length and min_length arguments for ListField ( #4877 )
2017-02-06 09:36:03 +00:00
Mariusz Felisiak
5c0f9f147c
Removed unnecessary utc wrapper. ( #4839 )
2017-01-23 16:22:32 +00:00
Asif Saifuddin Auvi
026a8d8707
make lint happy with isort --recursive
2017-01-18 22:15:44 +06:00
Asif Saifuddin Auvi
bc3849bd59
added utc compat to fields
2017-01-18 19:31:04 +06:00
Artem Muterko
4dd71d68d2
Remove extra parentheses ( #4789 )
2017-01-08 16:09:23 +00:00
Artem Muterko
773b68e188
Fix typos in Python files
2017-01-08 15:36:49 +02:00
Nik Nyby
24e082b142
docs: typo fix: it's -> its
2016-12-22 12:44:43 -05:00
Tom Christie
276ed80fd3
Support 'on'/'off' literals with BooleanField. Closes #4624 ( #4640 )
2016-11-01 11:11:34 +00:00
Ryan P Kilby
eafc9a2393
Fix is_simple_callable with variable args, kwargs ( #4622 )
2016-10-25 20:47:24 +01:00
Tom Christie
26e51ecd6c
When HTML form input is used with JSONField, treat the input as a JSON encoded string, not a JSON primative. ( #4565 )
2016-10-12 14:04:10 +01:00
Tom Christie
a3802504a0
Error codes ( #4550 )
...
Add error codes to `APIException`
2016-10-11 10:25:21 +01:00
Tom Christie
0dec36eb41
Version 3.5 ( #4525 )
...
* Start test case
* Added 'requests' test client
* Address typos
* Graceful fallback if requests is not installed.
* Add cookie support
* Tests for auth and CSRF
* Py3 compat
* py3 compat
* py3 compat
* Add get_requests_client
* Added SchemaGenerator.should_include_link
* add settings for html cutoff on related fields
* Router doesn't work if prefix is blank, though project urls.py handles prefix
* Fix Django 1.10 to-many deprecation
* Add django.core.urlresolvers compatibility
* Update django-filter & django-guardian
* Check for empty router prefix; adjust URL accordingly
It's easiest to fix this issue after we have made the regex. To try
to fix it before would require doing something different for List vs
Detail, which means we'd have to know which type of url we're
constructing before acting accordingly.
* Fix misc django deprecations
* Use TOC extension instead of header
* Fix deprecations for py3k
* Add py3k compatibility to is_simple_callable
* Add is_simple_callable tests
* Drop python 3.2 support (EOL, Dropped by Django)
* schema_renderers= should *set* the renderers, not append to them.
* API client (#4424 )
* Fix release notes
* Add note about 'User account is disabled.' vs 'Unable to log in'
* Clean up schema generation (#4527 )
* Handle multiple methods on custom action (#4529 )
* RequestsClient, CoreAPIClient
* exclude_from_schema
* Added 'get_schema_view()' shortcut
* Added schema descriptions
* Better descriptions for schemas
* Add type annotation to schema generation
* Coerce schema 'pk' in path to actual field name
* Deprecations move into assertion errors
* Use get_schema_view in tests
* Updte CoreJSON media type
* Handle schema structure correctly when path prefixs exist. Closes #4401
* Add PendingDeprecation to Router schema generation.
* Added SCHEMA_COERCE_PATH_PK and SCHEMA_COERCE_METHOD_NAMES
* Renamed and documented 'get_schema_fields' interface.
2016-10-10 13:03:46 +01:00
Tom Christie
4655501d51
Fix regression of RegexField
. ( #4490 )
...
* Don't deepcopy 'regex' arguments, instead treat as immutable.
2016-09-15 12:44:45 +01:00
Tom Christie
785b206b81
Tweak doctsring. Closes #4404 [ci skip]
2016-08-15 16:21:51 +01:00
Leonid Shvechikov
1d26b398ad
Fix comment for SerializerMethodField.bind method ( #4389 )
...
It seems that the example was copy&pasted and not updated properly.
2016-08-11 22:15:21 +01:00
Tom Christie
f16e880167
Stricter type validation for CharField. ( #4380 )
...
Stricter type validation for CharField
2016-08-10 17:22:19 +01:00
Tom Christie
48f3db36d6
Allow optional max_digits on DecimalField ( #4377 )
2016-08-10 14:39:26 +01:00
Dmitry Dygalo
e1768bdc16
Fixed various typos ( #4366 )
2016-08-08 09:32:22 +01:00
Tom Christie
e37619f741
Serializer defaults should not be included in partial updates. ( #4346 )
...
Serializer default values should not be included in partial updates
2016-08-02 13:05:12 +01:00
Tom Christie
46a44e52aa
Quantize incoming digitals ( #4339 )
2016-08-01 17:15:41 +01:00
Tom Christie
aa349fe767
Handle non-string input for IP fields ( #4338 )
2016-08-01 16:14:26 +01:00
kiyoqoko
6338ce80ab
Add localize keyword argument to DecimalField
( #4233 )
...
Add `localize` keyword argument for DecimalField
2016-07-06 16:07:16 +01:00
Tom Christie
798a971f20
Simplfy TimeField passing through strings ( #4197 )
...
* Simplfy TimeField passing through strings
2016-06-14 16:05:00 +01:00
Tom Christie
9406e45b2c
Pass through strings as-in with DateTimeField ( #4196 )
2016-06-14 12:23:39 +01:00
Tom Christie
9c996d7d2a
Clean up existing deprecation warnings. ( #4166 )
...
* Add Meta.fields = '__all__' to serializer classes where required.
* Add explicit on_delete=models.CASCADE to ForeignKey fields.
* Use '.remote_field' and '.model' in preference to '.rel' and '.to' when inspecting model fields.
* Use new value_from_object in preference to internal _get_val_from_obj
2016-06-02 14:39:10 +01:00
KhasanovBI
768ae26aa4
Fix None values representation in childs of ListField, DictField. ( #4118 )
2016-05-16 09:30:23 +01:00
Tom Christie
ebb4070467
Resolve TimeField representation for midnight value. ( #4107 )
2016-05-10 11:56:36 +01:00
Daniele Varrazzo
88c80fe2e9
Fixed DecimalField arbitrary precision support ( #4075 )
2016-04-27 17:04:01 +01:00
José Padilla
69c0de4faa
Merge pull request #3953 from akarambir/remove-old-django-checks
...
Closes #3952 : Remove old django checks from tests and compat
2016-02-19 11:08:45 -04:00
Karambir Singh Nain
69f1e3a9fd
Remove old django checks from tests and compat
...
Remove skipping of tests for Django<1.8. Remove several functions from compat.py not needed for Django>=1.8
2016-02-19 01:47:45 +05:30
Erick Wilder
8109752061
Closes #3937 . Support callable as the value of initial
for any serializer.Field
2016-02-17 10:52:21 +01:00
Mikalai Radchuk
1f2a32d506
Fixes docstrings in fields.py
...
Fixes docstrings for `to_choices_dict` and `flatten_choices_dict` functions in fields.py.
Mistakes were introduced in #4d69286
2016-02-03 12:36:00 +03:00
areski
4e01796303
Test for TimeField not handling empty values
2016-01-11 12:16:26 +01:00
areski
a76c3ed051
Fixed TimeField not handling empty values
2016-01-11 12:14:40 +01:00
Mikalai Radchuk
6b207d93d6
DateField.to_representation unicode compatibility
2016-01-11 13:11:01 +03:00
mjparker777
d9c360845d
changed datefield to match code layout of datetime and time changes
2015-12-17 12:21:44 -07:00
mjparker777
fc08236ab8
updated timefield also
2015-12-13 16:09:56 -07:00
mjparker777
bf60c08010
Issue 3726 DateTimeField not handling empty values
2015-12-13 12:21:13 -07:00
bphillips
c153bcb479
Added validation to UUIDField to properly catch invalid input types (lists, tuples, etc).
2015-12-01 14:09:10 -05:00
Steven Loria
b209fe04fc
Fix typo in docstring for ReadOnlyField
2015-11-20 13:51:21 -05:00
Tom Christie
04158e187e
Merge pull request #3513 from pattisdr/feature/ListField_needs_to_enforce_list
...
ListField does not enforce that input is a list
2015-11-18 12:19:40 +00:00
Dawn Pattison
8fa7c5c914
Exclude collections.Mapping from allowable data types in ListField
2015-10-20 08:56:39 -04:00
Omer Katz
2e178bc970
Replaced all dict and set conversions from lists to dict and set literals.
2015-10-17 12:00:11 +03:00
Dawn Pattison
dac1637bb3
Use set instead of Set
2015-10-16 16:06:18 -04:00
Dawn Pattison
b9316154b1
Add tuple and Set to allowed ListField data types
2015-10-16 16:02:13 -04:00
Dawn Pattison
f808f08a0d
Require that data is a list.
2015-10-16 14:43:43 -04:00
Tom Christie
265ec8ac62
Handle binary or unicode with JSONField
2015-09-28 17:47:51 +01:00
Tom Christie
ec8098b7e2
Work around 2.x/3.x json.dumps() return type fuzziness
2015-09-28 17:32:36 +01:00
Tom Christie
10dbf1316f
Added JSONField. Closes #3170 .
2015-09-28 17:25:52 +01:00
Tom Christie
2d0b54e263
Merge branch 'drop-django-16' oft https://github.com/carltongibson/django-rest-framework into carltongibson-drop-django-16
...
Conflicts:
docs/topics/release-notes.md
2015-09-28 11:17:48 +01:00
Tom Christie
ca8313aeac
Merge branch 'master' into version-3.3
...
Conflicts:
docs/topics/release-notes.md
2015-09-28 10:57:14 +01:00
Tom Christie
6284bceaaf
Merge pull request #3363 from tomchristie/dont-access-settings-on-import
...
Access settings lazily, not at module import.
2015-09-24 15:42:31 +01:00
Carlton Gibson
45ace5010e
Remove OrderedDict fallback
2015-09-22 16:35:38 +02:00
Carlton Gibson
4a1ab3c18c
Fix isort errors
2015-09-21 16:29:33 +02:00
Carlton Gibson
e625cff8a5
Remove Django 1.5 URLValidator fallback
2015-09-21 16:22:46 +02:00
Carlton Gibson
9216dc9a25
Remove Django 1.5 EmailValidator fallback
2015-09-21 16:20:07 +02:00
Xavier Ordoquy
f2c65512c6
Merge pull request #3415 from adamsc64/issue_2761
...
Fixed #2761 - ListField truncation on HTTP PATCH
2015-09-21 13:06:44 +02:00
Christopher Adams
9ccfc94077
Fixed #2761 - ListField truncation on HTTP PATCH
...
- Checked ``partial`` state when getting value in appropriate field
classes; return ``empty`` immediately if key not submitted.
2015-09-19 10:18:04 -04:00
Steven Loria
284f9faa07
Correctly handle [] and {} as invalid inputs to BooleanField
2015-09-11 23:12:18 -04:00
Tom Christie
f9e53091c1
Drop handling of ImproperlyConfigured
2015-09-03 16:40:12 +01:00
Tom Christie
8b7ebb9d2c
Fixed import sorting
2015-09-03 16:29:13 +01:00
Tom Christie
10da18b20b
Access settings lazily, not at module import
2015-09-03 16:24:13 +01:00
raphaelmerx
b9782b6850
DurationField accepts integers
2015-09-02 16:47:50 -07:00
Tom Christie
9ac646385f
Resolve empty HTML charfield behavior. Closes #3318 .
2015-08-24 10:13:16 +01:00
Tom Christie
314c0095aa
iter_options function should have no cutoff by deault
2015-08-21 10:56:22 +01:00
Tom Christie
99beeb80e1
No cutoff for default ChoiceField, only for relationships
2015-08-21 10:53:10 +01:00
Tom Christie
f4412d0827
Docs for select cutoffs
2015-08-21 10:52:44 +01:00
José Padilla
8af366a732
Raise error when source=
use on a child.
...
Closes #3292
2015-08-19 12:32:16 -04:00
Omer Katz
792005806b
Cached the field's root and context property.
2015-08-18 12:38:13 +03:00
Tom Christie
18af181191
Fix boolean checkboxes setting to False. Closes #3258 . Closes #2776 .
2015-08-13 09:56:03 +01:00
Tom Christie
368fb9fb2a
Merge pull request #3238 from kezabelle/bugfix/3235
...
Fixed #3235 - ListField now returns the QueryDict value even if it's a list of only one item.
2015-08-07 14:44:32 +01:00
Tom Christie
e63dcab8b3
Fix for rendering select templates on relationships
2015-08-07 14:36:00 +01:00
Keryn Knight
0078f66104
Fixed #3235 - A querydict which yields a list with only one value now correctly returns the provided data.
2015-08-07 11:43:17 +01:00
Tom Christie
24dec32e7a
Added test_iter_options
2015-08-06 12:18:09 +01:00
Tom Christie
4d69286efa
Use same structure for both .choices and .grouped_choices
2015-08-06 12:03:38 +01:00
Tom Christie
a6fefe78ff
Added docstring
2015-08-06 11:44:39 +01:00
Tom Christie
27ac5a3680
Support grouped choices
2015-08-06 11:43:03 +01:00
Tom Christie
95a1550388
Merge branch 'grouped-choices-fix' of https://github.com/maxpeterson/django-rest-framework into maxpeterson-grouped-choices-fix
2015-08-06 10:04:52 +01:00
Tom Christie
38a1b3ec6b
Rationalize decimal logic. Closes #3222 .
2015-08-06 09:51:00 +01:00