Commit Graph

355 Commits

Author SHA1 Message Date
Tom Christie
d9be6140dc More defensive coding. Refs: #348 2012-11-06 11:01:53 +00:00
Tom Christie
0d2377c148 Respect false value defaults on WritableField. Fixes #377. 2012-11-06 10:55:58 +00:00
Tom Christie
470878a591 Allow slug_url_kwarg to be overidden by subclass. Fixes #373 2012-11-06 10:47:26 +00:00
Tom Christie
b19c58ae17 Support for HTML error templates. Fixes #319. 2012-11-06 10:44:19 +00:00
Ben Konrath
09f39bd23b Merge branch 'master' into restframework2-filter 2012-11-06 03:22:25 +01:00
Toni
5d69628250 Update rest_framework/serializers.py
fixed AttributeError in case restore_object is overwritten without explicitly setting self.m2m_data
2012-11-05 20:55:03 +01:00
Tom Christie
455a8cedcf Tweaks 2012-11-05 17:03:22 +00:00
Tom Christie
9746abdf72 Version 2.1.0. Adding release notes. 2012-11-05 16:46:33 +00:00
Tom Christie
867033e676 slug_url_kwarg should default to same as slug_field 2012-11-05 16:43:44 +00:00
Tom Christie
9731b95fc3 Merge pull request #347 from minddust/master
support for passing custom slug options to HyperlinkedRelatedField
2012-11-05 08:36:59 -08:00
Tom Christie
6d201c362f Drop unneccesarily lenient dictionary-containing-instances serialization. 2012-11-05 16:19:11 +00:00
Stephan Groß
0a660a531a fixed typo 2012-11-05 16:43:03 +01:00
Stephan Groß
03095f607a added testcase for custom slug field in hyperlinkedrelatedfield 2012-11-05 16:37:37 +01:00
Tom Christie
33be4b43b9 queryset argument is now optional on writable model fields. 2012-11-05 12:51:04 +00:00
Tom Christie
ccd5f29510 Tidy up serializer fields now we no longer use dynamic fields 2012-11-05 11:03:36 +00:00
Tom Christie
dfb8225447 Add note on * import 2012-11-05 10:56:30 +00:00
Tom Christie
b7b942c599 Swap position of instance and data keyword arguments. 2012-11-05 10:53:20 +00:00
Stephan Groß
44449fa1f5 Merge remote-tracking branch 'upstream/master' 2012-11-05 11:45:49 +01:00
Tom Christie
5b397e50dd Include queryset missing exception on writable SlugField 2012-11-05 10:16:23 +00:00
Tom Christie
b8fa379e50 Merge pull request #364 from mjs7231/master
Fix for bug #363: ChoiceField missing in renderers.py
2012-11-05 01:54:07 -08:00
Michael Shepanski
3d0f8b792f Fix for bug #363: ChoiceField missing in renderers.py 2012-11-04 12:31:37 -05:00
Jacob Magnusson
7df7dadccd Remove `request' from response instance while
testing caching
2012-11-04 13:42:29 +01:00
Jacob Magnusson
963c5fe4a7 Remove attributes that are not needed when caching
the Response object. This fixes #346
2012-11-04 12:48:41 +01:00
Jacob Magnusson
44f280c3ab Add tests for caching of GET/HEAD requests using
Django's built in caching framework.
Currently fails as some attributes on the Response
object are not pickable
2012-11-04 12:47:46 +01:00
Jacob Magnusson
38af6107b5 Added test for ModelSerializer Meta fields
returning as expected
2012-11-03 00:32:08 +01:00
Jacob Magnusson
1b49615c00 Added test that makes sure that fields with
dictionaries as data are returned as expected and
not turned into string representations
2012-11-03 00:32:02 +01:00
Jacob Magnusson
19a218f859 Bye bye star import 2012-11-03 00:27:56 +01:00
Tom Christie
b468dd6271 Merge pull request #359 from tomchristie/relationship_tests
Relationship tests
2012-11-02 14:08:49 -07:00
Tom Christie
8ec54e6a9f Tweaks 2012-11-02 20:56:51 +00:00
Tom Christie
6eaec7a0ec foreign key tests 2012-11-02 20:53:33 +00:00
Jacob Magnusson
a6806f0307 Apply to_native on dictionary keys as well 2012-11-02 21:48:16 +01:00
Jacob Magnusson
3de61d200c Don't convert dictionary into a string representation 2012-11-02 20:55:58 +01:00
Tom Christie
e84ce60a0d Initial PK relationship tests 2012-11-02 19:11:40 +00:00
Tom Christie
b9bff2a984 Fix issues with pk related fields in the browsable API. 2012-11-02 14:05:14 +00:00
Tom Christie
062f5caef3 Tweaks fields docs, and fix 2.0.1 version. 2012-11-01 23:40:34 +00:00
Tom Christie
36e21153fb Merge master 2012-11-01 23:11:28 +00:00
Tom Christie
d327c5f531 Relational field support in browseable API.
Add slug relational fields.
Add quickstart.
2012-11-01 23:04:13 +00:00
Tom Christie
5558c0530f Merge pull request #351 from asfaltboy/fix_trans_choices
Return choices as unicode and not string
2012-11-01 06:27:28 -07:00
Tom Christie
aa779598aa Merge pull request #352 from asfaltboy/cleanup_MultipleObjectBaseView
cleanup MultipleObjectBaseView remains
2012-11-01 06:12:16 -07:00
Ben Konrath
9c82f9717e Merge branch 'master' into restframework2-filter 2012-11-01 14:06:56 +01:00
Pavel Savchenko
9a0cc7c720 since MultipleObjectBaseView was renamed MultipleObjectAPIView, it stands to reason to complete the renaming in docs and comments as well. 2012-11-01 15:06:11 +02:00
Pavel Savchenko
d3aedd5fb1 return choices as unicode and not string,
might as well have jsonp return unicode
2012-11-01 15:00:22 +02:00
Otto Yiu
756297ad1d fix 'from_native' method when rel is None
'NoneType' object has no attribute 'to'
2012-10-31 21:40:20 -07:00
Tom Christie
027c9079f6 PUT as create should return 201. Fixes #340. 2012-10-31 20:11:38 +00:00
Stephan Groß
ff7725f05e added support for custom slug field and kwargs
without subclassing HyperlinkedRelatedField and overwriting
slug_url_kwarg and slug_field there is no possibility to use other
fields / arguments. now you can do something like this:

url(r'^users/(?P<username>\w[\w-]*)$', UserInstance.as_view(),
name='user-detail')

class ProjectSerializer(serializers.HyperlinkedModelSerializer):
    created_by =
serializers.HyperlinkedRelatedField(view_name='user-detail',
slug_url_kwargs='username', slug_field='username')
2012-10-31 15:30:01 +01:00
Tom Christie
4cdd0b845e Final docs tweaks for 2.0 2012-10-30 13:59:31 +00:00
Tom Christie
cea907f172 Raise nicer exception if queryset not Set on writable related field. Refs: #338 2012-10-30 11:10:23 +00:00
Tom Christie
0047a46020 Merge fixes for 'blank=True' fields. Fixes #324, Fixes #325
Thanks to @Roarster.
2012-10-30 11:03:03 +00:00
Tom Christie
5670cb03bf Allow use of absolute URLs when deserializing hyperlinked fields 2012-10-30 10:49:01 +00:00
Tom Christie
1b6fe9abb4 Hyperlinked serializer tests 2012-10-30 10:35:30 +00:00
Tom Christie
51a53b497b Merge pull request #335 from tomchristie/related-field-as-instance
Writable related fields should return a model instance from .from_native...
2012-10-30 03:32:55 -07:00
Tom Christie
e5777a6168 Merge pull request #336 from markotibold/null_is_true_model_fields
Null is true model fields
2012-10-30 02:22:51 -07:00
Marko Tibold
4d90bb4af4 Fix some typos. 2012-10-30 00:30:52 +01:00
Marko Tibold
2068595297 Set a ModelSerializer field to required=False if the ModelField has null=True set. 2012-10-30 00:09:40 +01:00
Marko Tibold
6ccbdd10ad Adding failing tests that show null=True model fields are won't validate if their value is omitted. 2012-10-30 00:03:24 +01:00
Tom Christie
b6c90c0d68 Fix slug based put as create test 2012-10-29 17:20:06 +00:00
Tom Christie
215edc5dfa Merge branch 'restframework2' of https://github.com/tomchristie/django-rest-framework into restframework2 2012-10-29 17:09:01 +00:00
Tom Christie
d206c686a6 Fixes for urls with suffixes 2012-10-29 17:08:38 +00:00
Tom Christie
343da8e3cf PUT as create should return 200 2012-10-29 16:13:08 +00:00
Tom Christie
6b6f0e682b Merge pull request #331 from markotibold/test_put_as_create
Test put as create
2012-10-29 09:11:32 -07:00
Tom Christie
ee8ab283f0 Style tweaks 2012-10-29 14:41:33 +00:00
Tom Christie
49f87cfbab Deal with None and missing values 2012-10-29 14:10:38 +00:00
Tom Christie
dfcb560f8f Fix up login styling 2012-10-29 13:57:46 +00:00
Tom Christie
752f191a76 Fix breadcrumbs 2012-10-29 13:18:51 +00:00
Tom Christie
f4edd92566 Writable welated fields should return a model instance from .from_native(), not a pk 2012-10-29 12:51:21 +00:00
Tom Christie
de6908fbef Remove recursion detection 2012-10-28 20:50:14 +00:00
Tom Christie
351382fe35 nested -> depth 2012-10-28 20:43:43 +00:00
Tom Christie
6e4ab09aae readonly -> read_only 2012-10-28 20:21:45 +00:00
Marko Tibold
1a16289ede Get the correct instance 2012-10-28 20:56:48 +01:00
Marko Tibold
5bb6680376 test_put_as_create_on_id_based_url should check for a created-response. 2012-10-28 20:45:42 +01:00
Tom Christie
3d3df22d82 Merge pull request #330 from tomchristie/tutorial-refactor
Tutorial refactor
2012-10-28 12:42:10 -07:00
Tom Christie
1b2c235847 Merge pull request #327 from tomchristie/allow-any-permission
Add AllowAny permission
2012-10-28 12:10:12 -07:00
Marko Tibold
bc99142c7d Added wo tests. One for PUTing on a non-existing id-based url. And another for PUTing on a non-existing slug-based url.
Fix doctoring for 'test_put_cannot_set_id'.
2012-10-28 19:35:50 +01:00
Tom Christie
12c363c1fe TemplateHTMLRenderer, StaticHTMLRenderer 2012-10-28 18:12:56 +00:00
Tom Christie
af96fe05d0 Add AllowAny class 2012-10-27 20:17:49 +01:00
Tom Christie
d995742afc Add AllowAny permission 2012-10-27 20:04:33 +01:00
Tom Christie
b9e576f16e Push tests into a seperate app namespace 'rest_framework.test'
Prevents tests from running by default when rest_framework is installed
as 3rd party app.
Fixes #316, #185
2012-10-27 18:44:23 +01:00
Tom Christie
44207a347a pep8 2012-10-27 10:33:01 +01:00
Tom Christie
67f1265e49 Fix failing 'default' on ModelSerializer 2012-10-26 13:20:30 +01:00
Tom Christie
fc4614a89c Whitespace 2012-10-26 12:46:41 +01:00
Tom Christie
2efb5f8a14 Object-level permissions respected by Browseable API 2012-10-26 12:46:15 +01:00
Tom Christie
32d602880f Choice fields from ModelSerializer. 2012-10-26 12:45:52 +01:00
Tom Christie
195006bbc3 Drop resources from codebase since implementation is only partial (Created resoorces-routers branch for future reference) 2012-10-26 09:27:59 +01:00
Tom Christie
e987737621 Merge pull request #320 from j4mie/split-generic-views
Rename generic base classes, and add CreateAPIView, DeleteAPIView, UpdateAPIView.
2012-10-25 06:31:25 -07:00
Jamie Matthews
27935f6f66 Rework generic view class names 2012-10-25 13:50:39 +01:00
Jamie Matthews
d6e10b50fc Re-add implementation of multiple-operation generic views to remove diamond inheritance 2012-10-25 12:26:08 +01:00
Tom Christie
8c360770c1 Add pre_save hook in generic views 2012-10-25 12:15:31 +01:00
Jamie Matthews
16e249d60d Merge branch 'restframework2' into split-generic-views
* restframework2:
  Fix ModelSerializer logic for fields with default value, which should have required=False set
  Added @diviei - Thanks!
  Fix typo reported by @diviei
2012-10-25 11:12:10 +01:00
Tom Christie
3e751ccd8a Fix ModelSerializer logic for fields with default value, which should have required=False set 2012-10-24 20:58:28 +01:00
Jamie Matthews
32ebf96ef6 Split concrete generic views up into separate bits of functionality 2012-10-24 18:22:29 +01:00
Jamie Matthews
607c31c6d8 Move per-field and cross-field validation into a single method 2012-10-24 12:12:27 +01:00
Jamie Matthews
d60d598e02 Clean up internal names and documentation 2012-10-24 11:43:30 +01:00
Jamie Matthews
ac2d39892d Add cross-field validate method 2012-10-24 11:39:17 +01:00
Jamie Matthews
388a807f64 Switch from clean_<fieldname> to validate_<fieldname>, clarify documentation 2012-10-24 11:27:01 +01:00
Jamie Matthews
51fae73f3d Implement per-field validation on Serializers 2012-10-24 09:28:10 +01:00
Tom Christie
5d76f03ac6 Merge pull request #315 from Roarster/emptymanytomany
#314 Fix for manytomany field being required in the payload even though ...
2012-10-22 15:00:56 -07:00
Ian Strachan
c7a0d52fd7 #314 Fix for manytomany field being required in the payload even though the field is specified as readonly in the serializer 2012-10-22 22:24:26 +01:00
Marko Tibold
d1e05ea8d4 Merge commit '95a670de41a246777bc1e448dca8cc576b7b86ea' into BrowsableAPIRenderer
Conflicts:
	rest_framework/renderers.py - manually resolved conflict
2012-10-22 20:09:36 +02:00
Tom Christie
95a670de41 Merge field changes: .default and .widget 2012-10-22 15:24:09 +01:00
Jamie Matthews
45d4622f09 Fix serialization of reverse relationships 2012-10-22 15:12:25 +01:00
Marko Tibold
ab1a12bfec Refactoring BrowsableAPIRenderer 2012-10-21 23:04:12 +02:00
Marko Tibold
c30712a5c8 Remove redundant check if method=='DELETE' 2012-10-21 22:23:54 +02:00
Tom Christie
93f1aa4f69 Remove initial kwarg, add default. 2012-10-21 17:41:05 +01:00
Marko Tibold
71a93930fd Fixing spelling errors. 2012-10-21 16:34:07 +02:00
Tom Christie
efabd2bb1b docs, docs, docs, docs, docs, docs, docs 2012-10-19 19:59:55 +01:00
Tom Christie
a7390fe704 Fix up widget choices 2012-10-19 09:47:01 +01:00
Tom Christie
dab177e29e Drop help_text 2012-10-19 09:20:54 +01:00
Tom Christie
643d3491a6 First pass at pastebin tutorial 2012-10-18 23:48:52 +01:00
Ian Strachan
d70e387f10 Added tests for dotted notation in serializer field source 2012-10-18 23:45:16 +01:00
Tom Christie
c341799344 Apply readonly on RelatedField 2012-10-18 22:19:54 +01:00
Tom Christie
d1746e2f3c Allow callables in dotted notation like Field(source='foo.bar') 2012-10-18 22:03:48 +01:00
Tom Christie
fed235dd01 Make settings consistent with corrosponding view attributes 2012-10-17 23:09:11 +01:00
Tom Christie
e126b61542 Negotiation API finalized. .select_renderers and .select_parsers 2012-10-17 22:58:18 +01:00
Tom Christie
fb56f215ae Added media_type to .parse() - Consistency with renderer API. 2012-10-17 22:39:07 +01:00
Tom Christie
4231995fbd parser_context includes view, request, args, kwargs. (Not meta and upload_handlers)
Consistency with renderer API.
2012-10-17 22:19:59 +01:00
Tom Christie
99d48f9003 Drop .parse_string_or_stream() - keep API minimal. 2012-10-17 22:07:56 +01:00
Rob Dobson
38673c35d4 Make default field check safe for boolean values whereby 'False' may be an acceptable default value 2012-10-17 19:12:34 +01:00
eofs
520a183cc6 Typo in class name 2012-10-17 10:41:23 +03:00
Tom Christie
ae680b13da Merge branch 'restframework2' of https://github.com/tomchristie/django-rest-framework into restframework2 2012-10-16 09:20:20 +01:00
Tom Christie
4fe734a91a Merge pull request #296 from ulmus/restframework2
Removed serializers.TextField and related tests
2012-10-15 06:04:55 -07:00
Tom Christie
3c8f01b985 Explicit CSRF failure message. Fixes #60. 2012-10-15 14:03:36 +01:00
Tom Christie
9c1fba3483 Tweak parsers to take parser_context 2012-10-15 13:27:50 +01:00
Jens Alm
9f3ff0105a Removed serializer.TextField and related tests 2012-10-15 14:09:29 +02:00
Jens Alm
c942726509 Added docs, integer fields and refactored models.TextField to use CharField
I realized that per the django forms, there is no need for a separate
TextField, an unlimited CharField is perfectly good.
Also added default field for the different IntegerField types
2012-10-15 13:46:44 +02:00
Jens Alm
afbc9684f2 Revert "Support for request-based queryset limits on ListModelMixin"
This reverts commit de4604be0a.
2012-10-15 11:49:56 +02:00
Jens Alm
de4604be0a Support for request-based queryset limits on ListModelMixin
ListModelMixin uses the get_queryset from the MultipleObjectMixin. This
method can be overridden on the View class to return a different
queryset, but get_queryset doesn't accept a request parameter in. This
commit adds the limit_list hook to override if you want to limit the
queryset based on request-information such as the logged in user.
2012-10-15 11:47:56 +02:00
Jens Alm
36cc56bc9d Added tests for TextField 2012-10-15 10:06:50 +02:00
Jens Alm
241be38340 Added TextField to recognized fields 2012-10-15 09:14:01 +02:00
Tom Christie
551c86c43a Documentation for parsers 2012-10-14 22:43:07 +01:00
Tom Christie
7608cf1193 Improve documentation for Requests 2012-10-13 15:07:43 +01:00
Ben Konrath
1d054f9572 Use Decimal (properly) everywhere. 2012-10-11 14:19:29 +02:00
Ben Konrath
6f736a6823 Explicitly use Decimal for creating filter test data.
This fixes a Travis build failures on python 2.6:

https://travis-ci.org/#!/tomchristie/django-rest-framework/builds/2746628
2012-10-11 13:55:16 +02:00
Tom Christie
6300334aca Sanitise JSON error messages 2012-10-11 13:53:12 +02:00
Tom Christie
9094f93d18 Sanitise JSON error messages 2012-10-11 11:21:50 +01:00
Ben Konrath
5454162b04 Define 'page' query field name in one place. 2012-10-11 12:01:07 +02:00
Ben Konrath
6fbd411254 Make query filters work with pagination. 2012-10-11 12:01:07 +02:00
Ben Konrath
e295f616ec Fix small PEP8 problem. 2012-10-11 12:01:07 +02:00
Ben Konrath
692203f933 Check for 200 status when unknown filter requested.
This changes the test from the failing checking for status 400. See
discussion here:

https://github.com/tomchristie/django-rest-framework/pull/169#issuecomment-9240480
2012-10-11 12:01:07 +02:00
Ben Konrath
1e9ece0f93 First attempt at adding filter support.
The filter support uses django-filter to work its magic.
2012-10-11 12:01:07 +02:00
Tom Christie
83f39b3dce Don't fail when no data provided 2012-10-10 16:41:08 +01:00
Tom Christie
221ecd2182 Fix session auth 2012-10-10 16:36:25 +01:00
Tom Christie
d905d1cbd3 Fix yaml rendering 2012-10-10 16:34:00 +01:00
Tom Christie
5c7f3e23ee Tidy up APISettings object to not rely on module state 2012-10-10 12:54:40 +01:00
Tom Christie
db6b5a990b Fix key ordering in json. (sort if it's a sorted dictc representation, or not otherwise) 2012-10-10 12:32:23 +01:00
Tom Christie
648d2be29b Make sure JSON output in Browseable API is nicely indented 2012-10-10 12:15:18 +01:00
Tom Christie
ccd2b0117d Permissions and throttles no longer have a view attribute on self. Explicitly passed to .has_permissions(request, view, obj=None) / .allow_request(request, view) 2012-10-10 10:02:37 +01:00
Tom Christie
900c4b625b api_key -> auth_token to avoid TastyPie conflict 2012-10-10 09:50:15 +01:00
Tom Christie
44281c3996 Remove 'tut 6 - resources' from the docs, since it doesn't exist yet 2012-10-10 09:36:18 +01:00
Tom Christie
a3ab66eca4 Add 'to_many' flag in get_related_field 2012-10-09 17:51:32 +01:00
Tom Christie
9bbc1cc403 Add flag in get_related_field 2012-10-09 17:49:04 +01:00