Tom Christie
7d417fc678
Make _force_text_recursive private.
2014-11-20 12:02:58 +00:00
Tom Christie
bde7255413
Fix non-determanistic default bug. Closes #2099 .
2014-11-20 09:30:49 +00:00
Tom Christie
40b1ea919b
Fix non-determanistic unique constraint mapping. Refs #2092 .
2014-11-19 14:51:49 +00:00
Tom Christie
8516281078
Minor fix for #2092 .
2014-11-19 14:40:30 +00:00
Tom Christie
8586290df8
Apply defaults and requiredness to unique_together fields. Closes #2092 .
2014-11-19 13:55:10 +00:00
Tom Christie
6cb6510132
Use translatable error strings. Refs #2063 .
2014-11-19 12:15:05 +00:00
Tom Christie
e49d22dbda
Allow blank choices to render. Closes #2071 .
2014-11-19 09:31:26 +00:00
Tom Christie
f573aaee4e
List serializer no explicitly renders as 'not supported for HTML input'
2014-11-18 17:25:05 +00:00
Tom Christie
c0d356edaa
Fix byte decode error rendering 'display_name' with OPTIONS. Closes #2084
2014-11-18 15:42:52 +00:00
Tom Christie
080bd3d24e
Add comment ref #2089
2014-11-18 15:38:31 +00:00
Tom Christie
084354d3eb
Only pass instance to form for PUT and PATCH. Closes #2073 .
2014-11-18 15:11:40 +00:00
Tom Christie
5e74f02d61
Note removal of 'save_object' and fail loudly if it exists
2014-11-18 14:49:00 +00:00
Doug Beck
67735687b2
Ensure _resolve_model
does not return None
2014-11-18 01:26:23 -05:00
Tom Christie
0f508c5821
Docs for advanced default argument usage. Closes #1945
2014-11-17 18:36:32 +00:00
Tom Christie
5f580cad52
Remove class='form-control' for file inputs. Closes #2065 .
2014-11-17 18:17:44 +00:00
Gregor Müllegger
ad060aa360
More helpful error message when default .create
fails. Closes #2013 .
2014-11-15 15:29:52 +01:00
Tom Christie
4e03518438
required=False for nullable relationships
2014-11-13 23:30:42 +00:00
Tom Christie
7394dcec9e
ReturnList and ReturnDict wrapped at nicer point
2014-11-13 23:05:44 +00:00
Tom Christie
cb672a0ecb
Merge branch 'master' of https://github.com/tomchristie/django-rest-framework
2014-11-13 22:16:53 +00:00
Tom Christie
992330055e
Refactor many
2014-11-13 21:11:13 +00:00
Tom Christie
78a741be27
Split out .create and .update on ListSerializer
2014-11-13 20:24:48 +00:00
Tom Christie
fd97d9bff8
Use select inputs for relationships. Closes #2058 .
2014-11-13 19:35:03 +00:00
Tom Christie
ea98de9b88
Model fields with .blank or .null now map to required=False. Closes #2017 . Closes #2021 .
2014-11-13 19:28:57 +00:00
Kevin Chang
dbb435ca31
Added missing default style for FileField
2014-11-12 12:46:09 -08:00
Tom Christie
e70b82b6c8
Update html.py
2014-11-12 15:38:39 +00:00
Tom Christie
1838e18aee
Update html.py
2014-11-12 15:38:05 +00:00
Kevin London
9521b69711
#2054 : Update exceptions to allow custom detail
...
This addresses the changes requested in #2054 and allows for custom messages that do not necessarily require a string formatter be present in the detail message.
2014-11-10 11:08:39 -08:00
Tom Christie
62ce653c61
Update fields.py
2014-11-10 14:44:26 +00:00
Tom Christie
fd7db776ad
Bring UniqueValidator implementation in line with other uniquness validators.
2014-11-10 12:32:03 +00:00
Tom Christie
f387cd89da
Uniqueness constraints imply a forced 'required=True'. Refs #1945
2014-11-10 12:21:27 +00:00
Tom Christie
51d86a6505
Support dotted source on relational fields
2014-11-07 16:05:07 +00:00
Tom Christie
3e878a3207
Fix initial data on serializers to reflect writable fields
2014-11-07 15:38:27 +00:00
Tom Christie
02844a1507
Fix up fieldset templates. Closes #2039
2014-11-07 15:22:17 +00:00
Tom Christie
4e2627736f
Merge branch 'master' into dont-deserialize-twice
2014-11-07 14:14:18 +00:00
Tom Christie
55c44fc921
Fix serializer initial data
2014-11-07 14:13:50 +00:00
Tom Christie
041435f4ee
Prevent re-running deserialization. Closes #1975 .
2014-11-07 14:08:20 +00:00
Tom Christie
bb21216a7c
Metadata API should examine child serializer if passed parent ListSerializer. Closes #2035 .
2014-11-07 12:16:25 +00:00
Tom Christie
eafb7e1e24
ModelField fix. Closes #2018 .
2014-11-07 11:44:16 +00:00
Tom Christie
a16a8a10a9
.copy() for serializer .data and .errors dictionaries
2014-11-07 11:16:26 +00:00
Tom Christie
e399140031
Minor tweaks
2014-11-07 10:51:08 +00:00
Tom Christie
555930ee81
Merge branch 'master' of https://github.com/tomchristie/django-rest-framework
2014-11-07 10:14:03 +00:00
Tom Christie
9b19b5a594
Serializer cleanup
2014-11-07 10:13:46 +00:00
Tom Christie
a40b805963
Merge pull request #2038 from NextHub/master
...
Fixed base_url duplication in FileField.use_url
2014-11-06 17:37:52 +00:00
Tom Christie
db1dd8e240
Tests & fixes for list serialization
2014-11-06 17:32:33 +00:00
Tymur Maryokhin
ea76dc18b6
Fixed base_url duplication in FileField.use_url
...
Django already joins base_url when constructing FileField.url
2014-11-06 18:20:55 +01:00
Tom Christie
4e001dbb7a
Drop usage of SortedDict. Closes #2027 .
2014-11-06 12:00:30 +00:00
Tom Christie
a919068c5d
Fix exception style for py3
2014-11-06 11:35:34 +00:00
Tom Christie
4482be46ae
More precise assertion error for bulk update
2014-11-06 11:10:36 +00:00
Tom Christie
ed541864e6
Support for bulk create. Closes #1965 .
2014-11-06 10:34:59 +00:00
Tom Christie
73daf40715
ModelField should support max_length. Closes #2018 .
2014-11-05 15:51:45 +00:00
Tom Christie
49fae23000
Pass through kwargs to both Serializer and ListSerializer
2014-11-05 15:23:13 +00:00
Tom Christie
d048d32876
Minor cleanup
2014-11-05 13:40:21 +00:00
Tom Christie
2daf085100
Copy accepted_renderer and accepted_media_type when cloing a request. Closes #1950 .
2014-11-05 11:08:32 +00:00
Tom Christie
0a5d088287
Fix failing copy of fields when RegexValidator is used. Closes #1954 .
2014-11-05 10:48:30 +00:00
Tom Christie
26b6180f50
Support None if initial part of dotted lookup returns None. Closes #1223 .
2014-11-05 10:28:34 +00:00
Aron Jones
4d3831cae8
add glyphicons font files
2014-11-04 22:01:23 -05:00
Tom Christie
003c42b0f5
Use invalid_data key for error message. Closes #2002 .
2014-11-03 14:01:02 +00:00
tanwanirahul
6a095e9110
Merge remote-tracking branch 'rahul/master'
2014-11-03 14:45:49 +01:00
tanwanirahul
d972df7c9c
Ability to override default method names by customizing it
2014-11-03 14:43:53 +01:00
Tom Christie
d27b8cc09b
PUT as create docs, and move mixin out to external gist
2014-11-03 12:00:19 +00:00
Tom Christie
37845968cd
Merge master
2014-11-03 11:39:54 +00:00
Tom Christie
650a91ac24
Fix URL escaping
2014-11-03 11:29:48 +00:00
Tom Christie
96bb77dc35
Version 2.4.4
2014-11-03 11:20:18 +00:00
Tom Christie
ddc177732c
Merge branch 'master' into version-3.0
2014-11-03 11:10:47 +00:00
Tom Christie
b5c98f686d
Properly escape URLs when replacing query parameter
2014-11-03 11:10:24 +00:00
Tom Christie
65a0d083d6
Merge pull request #1963 from carljm/lazy-fields
...
Set up serializer fields lazily on-demand.
2014-10-31 16:40:06 +00:00
Tom Christie
207208fedf
Lazy loading of fields and validators. Closes #1963 .
2014-10-31 16:38:39 +00:00
Tom Christie
11075d3770
Merge branch 'master' into version-3.0
2014-10-31 16:05:45 +00:00
Tom Christie
5e1ed0aa95
Merge pull request #1922 from JonesChi/fix_follow
...
Fix follow does not work on get of APIRequestFactory
2014-10-31 16:05:17 +00:00
Tom Christie
bacf8cfa9d
Guard against malicious string inputs for numbers. Closes #1903 .
2014-10-31 15:41:00 +00:00
Tom Christie
0b864acd98
Merge pull request #1785 from gdoermann/master
...
Frameworks throws AssertionError saying you cannot set required=True and...
2014-10-31 15:29:06 +00:00
Tom Christie
159c3de9fc
Merge master
2014-10-31 15:19:15 +00:00
Tom Christie
45b5f23f31
Update to bootstrap 3. Closes #1085
2014-10-31 14:56:41 +00:00
Tom Christie
2762205887
Validator documentation and tweaks
2014-10-31 13:47:36 +00:00
Tom Christie
cd40dcb065
Ensure json.dumps(separators=...) works on both 2.x and 3.x
2014-10-30 16:53:12 +00:00
Tom Christie
9ebaabd6eb
unique_for_date/unique_for_month/unique_for_year
2014-10-28 16:21:49 +00:00
Tom Christie
f9c0e6ee1b
unique_for_month, unique_for_year
2014-10-22 16:29:09 +01:00
Tom Christie
ae53fdff9c
First pass at unique_for_date, unique_for_month, unique_for_year
2014-10-22 13:30:28 +01:00
Tom Christie
c5d1be8eac
.validate() can raise field errors or non-field errors
2014-10-22 10:32:32 +01:00
Erik Wickstrom
674855a114
Used Django utils SortedDict instead of stdlib's OrderedDict for
...
wider compatability.
2014-10-20 08:47:45 -07:00
Erik Wickstrom
12b677039d
Maintain order of views on router for api root view.
2014-10-19 21:03:33 -07:00
Carl Meyer
140f8620ae
Set up serializer fields lazily on-demand.
...
This avoids AppRegistryNotReady problems in Django 1.7 with nested serializers,
which are instantiated at import time, possibly before Django's app registry is
fully populated.
2014-10-17 09:50:57 -06:00
Tom Christie
05cbec9dd7
Use serializers.ValidationError
2014-10-17 13:23:14 +01:00
Tom Christie
5882a7a9d5
Tweak
2014-10-16 20:47:57 +01:00
Tom Christie
3af5df1955
Performance for PK fields
2014-10-16 20:47:57 +01:00
Tom Christie
32fd82ba0d
get_attribute method on fields
2014-10-16 20:47:57 +01:00
Tom Christie
7b666e982c
Stricter checking for failure cases.
2014-10-16 20:47:57 +01:00
Marty Alchin
4248a6c499
Add a keys method to BindingDict
2014-10-15 17:54:58 -07:00
Tom Christie
b4f3379c70
Support fields that reference a simple callable
2014-10-15 15:13:28 +01:00
Tom Christie
e8ea365c15
Moar form styling
2014-10-15 15:11:01 +01:00
Tom Christie
36fbc7678c
Moar form styling
2014-10-15 13:35:12 +01:00
Tom Christie
cc1c423255
Reorganize to use template_pack in form rendering
2014-10-15 11:12:34 +01:00
Tom Christie
e558f806c0
Drop template includes
2014-10-15 10:04:01 +01:00
Tom Christie
faa5bd9f53
Merge branch 'version-3.0' of https://github.com/tomchristie/django-rest-framework into version-3.0
2014-10-15 09:25:02 +01:00
Tom Christie
e272a36c9b
Fix 'lookup_field' on ModelSerializer. Closes #1944 .
2014-10-15 09:24:49 +01:00
Andy Freeland
81abf2bf34
Rename preform_update
to perform_update
2014-10-12 01:19:53 -04:00
Tom Christie
826b5a8897
Relations in 'read_only_fields' should not include a queryset kwarg
2014-10-10 15:34:00 +01:00
Tom Christie
b5a4216aff
Flake8
2014-10-10 15:08:43 +01:00
Tom Christie
d8a8987ab1
Tweaks
2014-10-10 14:32:02 +01:00
Tom Christie
d9a199ca0d
exceptions.ValidationFailed, not Django's ValidationError
2014-10-10 14:16:09 +01:00
Tom Christie
a0e852a4d5
Use BoundField .name on fields
2014-10-09 16:30:06 +01:00
Tom Christie
f83ed19d22
Checks and repr on BoundField
2014-10-09 16:29:34 +01:00
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
Xavier Ordoquy
311d315a73
Reverted 59d0a0387d
and fixed the tests
2014-10-08 08:33:28 +02: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