Commit Graph

1912 Commits

Author SHA1 Message Date
Tom Christie
5d247a65c8 First pass on nested serializers in HTML 2014-10-09 15:11:19 +01:00
Tom Christie
5f4cc52ef5 Tweaking 2014-10-09 10:11:44 +01:00
Tom Christie
87fdc73f64 Merge pull request #1920 from thedrow/topic/encoder-improvements
The JSON encoder now uses tuples instead of lists
2014-10-09 08:31:46 +01:00
Tom Christie
f7d43f530a Limit blank string -> None to just be on relational fields 2014-10-08 17:03:14 +01:00
Tom Christie
5ead8dc89d Support empty file fields 2014-10-08 16:59:52 +01:00
Tom Christie
4c015df28c Tweaks 2014-10-08 16:43:33 +01:00
Tom Christie
14ae52a24e More gradual deprecation 2014-10-08 16:09:37 +01:00
Tom Christie
28f3b314f1 .validate() returning validated data. transform_<field> hooks. 2014-10-08 12:36:28 +01:00
Tom Christie
0cbb57b40f Tweak pre/post save hooks. Return instance in .update(). 2014-10-08 12:17:30 +01:00
Tom Christie
6b09e5f2bb Tests for generic relationships 2014-10-08 11:22:10 +01:00
Tom Christie
093febb912 Tests for relational fields 2014-10-08 11:04:08 +01:00
Tom Christie
3fa4a1898a Reintroduce save hooks 2014-10-07 17:21:12 +01:00
Tom Christie
6bfed6f852 Enforce uniqueness validation for relational fields 2014-10-07 17:04:53 +01:00
Jones Chi
2dfe75c23a Fix follow does not work on APIClient
Handle follow just like Django's Client.
2014-10-06 15:10:35 +08:00
Tom Christie
3a3e2bf57d Serializer.save() takes keyword arguments, not 'extras' argument 2014-10-03 13:42:06 +01:00
Tom Christie
e6c5ebdda6 Fix indentation 2014-10-03 13:14:17 +01:00
Tom Christie
01c0857f8b Merge branch 'version-3.0' of https://github.com/tomchristie/django-rest-framework into version-3.0 2014-10-03 13:12:43 +01:00
Tom Christie
765b0b33bf Revert accidental stupidity 2014-10-03 13:12:23 +01:00
Tom Christie
dd47d8aa45 Merge pull request #1921 from koordinates/fix-typos
Minor: fix spelling and grammar, mostly in 3.0 announcement
2014-10-03 09:24:26 +01:00
Craig de Stigter
857a8486b1 More spelling tweaks 2014-10-03 09:00:33 +13:00
Craig de Stigter
dfab9af294 Minor: fix spelling and grammar, mostly in 3.0 announcement 2014-10-03 08:41:18 +13:00
Tom Christie
fec7c4b458 Browsable API tweaks 2014-10-02 18:13:15 +01:00
Tom Christie
df7b6fcf58 First pass on incorperating the form rendering into the browsable API 2014-10-02 16:24:24 +01:00
Omer Katz
79e91dff92 The encoder now returns tuples instead of lists.
Tuples take a little less memory which is significant when serializing a lot of objects.
2014-10-02 16:44:20 +03:00
Tom Christie
ffc6aa3abc More forms support 2014-10-01 21:35:27 +01:00
Tom Christie
c171fa21ac First pass at HTML form rendering 2014-10-01 19:44:46 +01:00
Tom Christie
c630a12e26 Deal with lazy strings in serializer reprs 2014-10-01 13:24:47 +01:00
Tom Christie
381771731f Use six.text_type instead of str everywhere 2014-10-01 13:09:14 +01:00
Tom Christie
d1b2c8ac7f Absolute URLs for file fields 2014-09-29 14:12:26 +01:00
Tom Christie
d2d412993f .validate() on serializer fields 2014-09-29 11:24:21 +01:00
Tom Christie
9805a085fb UniqueTogetherValidator 2014-09-29 11:23:02 +01:00
Tom Christie
43fd5a8730 Uniqueness validation 2014-09-29 09:24:03 +01:00
Tom Christie
dee3f78cb6 FileField and ImageField 2014-09-26 17:06:20 +01:00
Tom Christie
6090144608 Simplify serialization slightly 2014-09-26 14:32:44 +01:00
Tom Christie
33ccf40b76 Update version number 2014-09-26 13:14:08 +01:00
Tom Christie
2e87de0143 Added ListField 2014-09-26 13:08:20 +01:00
Anton D. Kachalov
802913d5e4 [templates/rest_framework/base.html] Separate object-form' and generic-content-form' IDs for POST and PUT forms
Signed-off-by: Anton D. Kachalov <mouse@yandex-team.ru>
2014-09-26 16:07:46 +04:00
Tom Christie
8b8623c5f8 Allow many, partial and context in BaseSerializer 2014-09-26 12:48:20 +01:00
Tom Christie
43e80c74b2 Release notes 2014-09-26 11:56:29 +01:00
Tom Christie
2859eaf524 request.data attribute 2014-09-26 10:46:52 +01:00
Tom Christie
417fe1b675 Partial support 2014-09-25 13:37:26 +01:00
Tom Christie
3a5335f09f Fix syntax error 2014-09-25 13:12:02 +01:00
Tom Christie
8ee92f8a18 Refuse to downcast from datetime to date or time 2014-09-25 13:10:33 +01:00
Tom Christie
b47ca158b9 Check for redundant on SerializerMethodField 2014-09-25 12:09:12 +01:00
Tom Christie
64632da371 Clean up bind - no longer needs to be called multiple times in nested fields 2014-09-25 11:40:32 +01:00
Tom Christie
b22c9602fa Automatic field binding 2014-09-25 11:04:18 +01:00
Tom Christie
1420c76453 Ensure proper sorting of 'choices' attribute on ChoiceField 2014-09-25 10:49:25 +01:00
Tom Christie
fb1546ee50 Enforce field_name != source 2014-09-24 20:53:37 +01:00
Tom Christie
127c0bd3d6 Custom deepcopy on Field classes 2014-09-24 20:25:59 +01:00
Tom Christie
630d472055 Merge branch 'master' into version-3.0 2014-09-24 14:10:00 +01:00
Tom Christie
f4b1dcb167 OPTIONS support 2014-09-24 14:09:49 +01:00
José Padilla
e8c01ecdab Correctly propagate cloned_request for OPTIONS
Update to fix pending changes in #1507
2014-09-23 21:12:58 -04:00
Tom Christie
aa84432f9b Merge pull request #1896 from dbrgn/csrf_response
Changed return status for CSRF failures to HTTP 403
2014-09-23 14:30:35 +01:00
Tom Christie
0404f09a7e NullBooleanField 2014-09-23 14:30:17 +01:00
Tom Christie
f22d0afc3d Tests for field choices 2014-09-23 14:15:00 +01:00
Danilo Bargen
b187f53453 Changed return status for CSRF failures to HTTP 403
By default, Django returns "HTTP 403 Forbidden" responses when CSRF
validation failed[1]. CSRF is a case of authorization, not of
authentication. Therefore `PermissionDenied` should be raised instead
of `AuthenticationFailed`.

[1] https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#rejected-requests
2014-09-23 14:16:08 +02:00
Tom Christie
5d80f7f932 allow_blank, allow_null 2014-09-22 17:46:02 +01:00
Tom Christie
5a95baf2a2 Tests & tweaks for ChoiceField 2014-09-22 16:52:57 +01:00
Tom Christie
b5454dd022 Tests and tweaks for choice fields 2014-09-22 16:50:04 +01:00
Tom Christie
e5f0a97595 More compat fixes 2014-09-22 16:45:06 +01:00
Tom Christie
5586b6581d Support format=None for date/time fields 2014-09-22 16:02:59 +01:00
Tom Christie
4db23cae21 Tweaks to DecimalField 2014-09-22 15:34:06 +01:00
Tom Christie
249253a144 Fix compat issues 2014-09-22 14:54:33 +01:00
Tom Christie
c54f394904 Ensure 'messages' in fields are respected in preference to default validator messages 2014-09-22 13:57:45 +01:00
Tom Christie
afb3f8ab0a Tests and tweaks for text fields 2014-09-22 13:26:47 +01:00
Tom Christie
af46fd6b00 Field tests and associated cleanup 2014-09-22 12:25:57 +01:00
Tom Christie
cf72b9a8b7 Moar tests 2014-09-19 16:43:13 +01:00
Tom Christie
20424251a3 Version 2.4.3 2014-09-19 14:26:28 +01:00
Tom Christie
88008c0a68 Merge branch 'master' into version-3.0 2014-09-19 14:05:50 +01:00
Piper Merriam
7f758d1cf6 Fix missing CSRF exemption on viewsets 2014-09-18 10:30:13 -06:00
Tom Christie
f90049316a Added a model update integration test 2014-09-18 15:47:27 +01:00
Tom Christie
106362b437 ModelSerializer.create() to handle many to many by default 2014-09-18 14:58:08 +01:00
Tom Christie
9fdb2280d1 First pass on ManyRelation 2014-09-18 14:23:00 +01:00
Tom Christie
87734be5f4 Configuration correctness tests on ModelSerializer 2014-09-18 12:17:21 +01:00
Tom Christie
5b7e4af0d6 get_base_field() refactor 2014-09-18 11:20:56 +01:00
Tom Christie
8c8d355e76 Update routers.py 2014-09-17 15:51:17 +01:00
Tom Christie
3376c37861 Merge pull request #1865 from mskrajnowski/default-router-listless-viewset
DefaultRouter support for viewsets without an implemented default action
2014-09-17 15:50:12 +01:00
José Padilla
de5fbf7d63 Update initial migration to work on Python 3 2014-09-17 10:23:53 -04:00
Tom Christie
c0155fd9dc Update comments 2014-09-17 14:11:53 +01:00
José Padilla
a37db382c6 Update authtoken latest Django 1.7 migration 2014-09-17 09:01:49 -04:00
Tom Christie
d196608d5a Fix nested model serializer base class 2014-09-15 13:55:09 +01:00
Tom Christie
40dc588a37 Drop label from serializer fields when not needed 2014-09-15 09:50:51 +01:00
Tom Christie
afb28a44ad Dealing with reverse relationships 2014-09-12 21:32:20 +01:00
Tom Christie
e6c88a4233 Drop usage of validatiors.EMPTY_VALUES 2014-09-12 19:54:27 +01:00
Tom Christie
0ac52e0808 Use Resolver404 instead of base Exception 2014-09-12 17:06:37 +01:00
Tom Christie
b73a205cc0 Tests for relational fields (not including many=True) 2014-09-12 17:03:42 +01:00
Tom Christie
79715f01f8 Coerce dates etc to ISO_8601 in seralizer, by default. 2014-09-12 12:10:22 +01:00
Tom Christie
22af49bf8f Tidy up JSONEncoder 2014-09-12 11:50:20 +01:00
Tom Christie
5e39e159ee UNICODE_JSON and COMPACT_JSON settings 2014-09-12 11:38:22 +01:00
Tom Christie
250755def7 Clean up relational fields queryset usage 2014-09-12 10:59:51 +01:00
Tom Christie
6db3356c4d NON_FIELD_ERRORS_KEY setting 2014-09-12 10:21:35 +01:00
Tom Christie
0d354e8f92 to_internal_value() and to_representation() 2014-09-12 09:49:35 +01:00
Tom Christie
adcb64ab41 MethodField -> SerializerMethodField 2014-09-12 09:12:56 +01:00
Tom Christie
1e53eb0aa2 DecimalFields should still be quantized even without coerce_to_string 2014-09-11 21:57:32 +01:00
Tom Christie
040bfcc09c NotImplemented stubs for Field, and DecimalField improvements 2014-09-11 21:48:54 +01:00
Tom Christie
a751871991 no longer tightly coupled to private queryset API 2014-09-11 20:50:26 +01:00
Tom Christie
55650a743d no longer tightly coupled to private queryset API 2014-09-11 20:49:10 +01:00
Tom Christie
19b8f779de Throttles now use Retry-After header and no longer support the custom style 2014-09-11 20:43:44 +01:00
Tom Christie
bf52d04f4c Nice manager representations on serializer classes 2014-09-11 20:37:27 +01:00
Tom Christie
ab40780dc2 Tidy up lookup_class 2014-09-11 20:22:32 +01:00
Tom Christie
3318f75a71 Improve memory address removal for serializer representations 2014-09-11 13:50:53 +01:00
Tom Christie
54ccf7230d Improve memory address removal for serializer representations 2014-09-11 13:43:46 +01:00
Tom Christie
de301f3b66 Merge master 2014-09-11 13:20:44 +01:00
Marek Skrajnowski
ae84438530 Added DefaultRouter support (and test) for viewsets without the default action implemented, which is usually the list action. 2014-09-11 12:42:36 +02:00
Joe Binney
37d01f6088 Fix grammar in login error message 2014-09-10 20:27:52 -07:00
Tom Christie
80ba047347 Compat fixes 2014-09-10 16:57:22 +01:00
Tom Christie
01c8c0cad9 Added help_text argument to fields 2014-09-10 13:52:16 +01:00
Tom Christie
234369aefd Tweaks 2014-09-10 08:53:33 +01:00
Tom Christie
b1c07670ca Fleshing out serializer fields 2014-09-09 17:46:28 +01:00
Xavier Ordoquy
015a8122c7 Merge pull request #1852 from GVRV/bugfix/apiroot_get_regression
Make sure APIRoot.get can take on args, kwargs so router can be embedded...
2014-09-09 07:19:16 +02:00
Gaurav Dadhania
1a885b9e16 Make sure APIRoot.get can take on args, kwargs so router can be embedded within any URL pattern. 2014-09-09 05:42:52 +05:30
Tom Christie
21980b800d More test sorting 2014-09-08 14:24:05 +01:00
Tom Christie
168710813c Merge pull request #1844 from adamsc64/issue_1533
Fixed #1533 - Resolved issue with integer keys on nested choices never v...
2014-09-08 10:15:26 +01:00
Hamish Campbell
826d76a8c7 Stop the API Client converting empty lists/dicts to empty strings 2014-09-08 12:16:20 +12:00
Christopher Adams
613a301a36 Fixed #1533 - Resolved issue with integer keys on nested choices never validating.
- Added unit test for nested `choices` argument.
- Added unit test for non-nested `choices` argument.
2014-09-06 17:13:28 -04:00
Tom Christie
e8fac28d88 Merge pull request #1818 from tituomin/serializer-subclass-mapping
Better mapping for custom model fields to serializer fields.
2014-09-06 07:20:31 +01:00
Tom Christie
5bbfef36f4 Merge pull request #1838 from jbittel/fix-encoded-filename-rfc6266
Support RFC6266 encoded filenames
2014-09-06 07:13:12 +01:00
Jason Bittel
3f7fad2e5a Refactor disposition unpacking for clarity 2014-09-05 16:27:55 -07:00
José Padilla
c9d4497d81 Use force_text from compat 2014-09-05 15:58:53 -07:00
José Padilla
d44a8f24ff Merge remote-tracking branch 'poswald/view-description-as-promise' into view-description-as-promise 2014-09-05 15:34:16 -07:00
Jason Bittel
c8e475023c Fix encoded filename parsing to allow for lang 2014-09-05 15:22:43 -07:00
Jason Bittel
bcd8a24db1 Refactor encoded filename feature per #1531 2014-09-05 14:56:54 -07:00
Vladislav Vlastovskiy
bcca9ed0fd Removed use encoding available only in py3 2014-09-05 14:52:01 -07:00
Vladislav Vlastovskiy
8a9f34b838 Added get filename as encoded
This filename described in RFC 6266
2014-09-05 14:50:16 -07:00
José Padilla
ab213cbc41 Remove order_by from AutoFilterSet 2014-09-05 11:43:49 -07:00
Tom Christie
d934824bff Workin on 2014-09-05 16:29:46 +01:00
Tom Christie
2b47c6b700 Merge pull request #1834 from piotrjakimiak/master
Fix returning None when allow_none is True in CharField
2014-09-05 13:57:34 +01:00
Piotr Jakimiak
c3b841ae44 Use Serializer instead of ModelSerializer 2014-09-05 14:08:11 +02:00
Tom Christie
7dce364a35 Merge pull request #1829 from cezar77/login-form-errors
Display validation errors on login form
2014-09-05 12:59:26 +01:00
Cezar Pendarovski
2531b5cd86 Remove light gray bordering from the well with general message error 2014-09-05 13:28:47 +02:00
Piotr Jakimiak
6022b9ddd4 Fix comment 2014-09-05 12:00:17 +02:00
Piotr Jakimiak
d9633c6817 Fix returning None when allow_none is True in CharField 2014-09-05 11:08:34 +02:00
Cezar Pendarovski
34b3ee9ea1 Place general error message in well 2014-09-05 11:06:30 +02:00
Cezar Pendarovski
d3ee26ba99 Change bootstrap class warning to error 2014-09-05 10:55:49 +02:00
Tom Christie
2e632e5af2 Merge pull request #1820 from carltongibson/login-dropdown
Hide login link in browsable API if the login view is not registered.
2014-09-05 09:07:14 +01:00
Cezar Pendarovski
6106701c06 Input fields get hightlighted if login fails and username is persisted 2014-09-05 09:38:54 +02:00
Cezar Pendarovski
3bc858c30b General message error goes above submit button 2014-09-04 17:51:45 +02:00
Cezar Pendarovski
ea259e8bde Error messages are displayed below the input fields 2014-09-04 16:01:27 +02:00
Cezar Pendarovski
d56efb8f82 Display validation errors on login form 2014-09-04 15:26:00 +02:00
Carlton Gibson
ef1fb3d8df Prefer format and use named blocks 2014-09-04 08:54:50 +02:00
dpanesso
1ab782a430 Using user.get_username() instead of user.username.
This solves an error when using a auth model that does not have a username field.
2014-09-03 23:38:03 -05:00
Piper Merriam
fc9be55d43 Alter CSRF exemption implementation
The previous implementation of decorating `APIView.dispach` with the
`csrf_exempt` decorator allowed for an easy-to-make mistake where
someone could override the `dispatch` method on a view and inadvertantly
remove the csrf exemption of their api view.

By moving the decoration of the view into the `as_view` logic, it
becomes much more difficult to make this mistake.
2014-09-03 09:50:31 -06:00
Tom Christie
f08afe162c Version 2.4.2 2014-09-03 16:35:17 +01:00
Tom Christie
c1036c1753 More test passing 2014-09-03 16:34:09 +01:00
Michał Jaworski
afe9b37f60 remove rogue print 2014-09-03 17:21:56 +02:00
Michał Jaworski
9195ccb97f Use explicit many=True for object_serializer instantiation in PaginationSerializer and add catch dummy 'many' kwarg on DefaultObjectSerializer 2014-09-03 16:52:41 +02:00
Carlton Gibson
4947303f20 Moved li tags inside optional_login
as per https://github.com/tomchristie/django-rest-framework/pull/1820#discussion_r16987993
2014-09-03 09:54:36 +02:00
Tom Christie
f2852811f9 Getting tests passing 2014-09-02 17:41:23 +01:00
Tom Christie
ec096a1cac Add relations and get tests running 2014-09-02 15:07:56 +01:00
Carlton Gibson
fa0ef17737 Remove Login Dropdown when Auth Views are not registered.
Fixes #1738
2014-09-02 14:53:37 +02:00