Tom Christie
b58e763287
Fix pk relations tests which were not running.
2013-02-13 12:33:04 +00:00
Tom Christie
d7417022f3
Kick travis again.
2013-02-13 11:51:03 +00:00
Tom Christie
31f45907e5
Kick travis. Meh.
2013-02-13 11:42:57 +00:00
Tom Christie
018298deb8
Relational fields use same field_to_native logic as regular fields.
...
Fixes #637 . Closes #638 .
2013-02-12 23:03:04 +00:00
Tom Christie
f341ead499
Test for None in 'dotted.source' component.
...
Closes #643 .
2013-02-12 23:01:20 +00:00
Tom Christie
15fa42b647
Unicode literal fix
2013-02-12 23:00:43 +00:00
Tom Christie
f505b2e440
Clean up field_to_native logic
2013-02-12 22:59:01 +00:00
Tom Christie
724906c516
Test for #637 .
2013-02-12 22:58:38 +00:00
Tom Christie
7f797abc19
Remove deprecated APIs from tests
2013-02-12 20:07:35 +00:00
Tom Christie
41ac1e8f32
Raise warnings if 'request' not in context for hyperlinked fields.
2013-02-12 13:54:50 +00:00
Tom Christie
388e617366
Raise warnings on implicit many serialization
2013-02-12 13:53:45 +00:00
Tom Christie
23fbbb1e16
Drop six
module from coverage.
2013-02-12 08:58:29 +00:00
Tom Christie
f5a0275547
Tidy up internal view permission checking logic.
...
Also document correctly - these methods are now public and will fall
under the deprecation policy from now on.
2013-02-12 08:58:28 +00:00
Tom Christie
09b01887f2
New style object-level permission checks
2013-02-12 08:58:28 +00:00
Tom Christie
aa03425c09
Merge pull request #651 from fernandogrd/master
...
DictWithMetadata.__getstate__ was never called (Fix for 645)
2013-02-11 23:27:35 -08:00
Fernando Rocha
ea004b5e7a
Make use o issubclass instead of isinstance (fix issue #645 )
...
Because __mro__ is a list of classes and not instances.
DictWithMetadata.__getstate__ was never called
Signed-off-by: Fernando Rocha <fernandogrd@gmail.com>
2013-02-11 19:18:22 -03:00
Tom Christie
baacdd821f
Add object permissions tests.
2013-02-10 20:08:46 +00:00
Tom Christie
870f10486c
Fix incorrect 401 vs 403 response, if lazy authentication has not taken place.
2013-02-10 20:08:36 +00:00
Tom Christie
29136ef2c6
Enforce PUT-as-create permissions
2013-02-10 16:50:46 +00:00
Tom Christie
69dcf13da9
Bugfix for DjangoModelPermissions. Fixes #437
...
Turns out that Django's default permissions backend always returns
False when checking object-level permissions, even if the user does
have valid global permissions.
2013-02-10 16:43:52 +00:00
Tom Christie
4c8bd40465
Tests for DjangoModelPermissions.
2013-02-10 16:42:24 +00:00
Tom Christie
670ac25b25
Allow serializers to handle dicts as well as objects. Fixes #447 .
2013-02-07 12:57:40 +00:00
Tom Christie
8113d66126
Use new style of required=<bool>
not blank
or null
2013-02-07 09:24:34 +00:00
Tom Christie
5813a09512
Use new many=True relations style.
2013-02-07 09:14:58 +00:00
Tom Christie
c18fb0d695
Added a post_save
hook. Closes #558 .
2013-02-06 21:28:03 +00:00
Tom Christie
123c6cbc7c
Merge pull request #640 from mjtamlyn/remove-naked-excepts
...
Purge naked excepts.
2013-02-06 05:21:01 -08:00
Marc Tamlyn
11610e7c3c
Try the correct NoReverseMatch location.
2013-02-06 13:10:54 +00:00
Marc Tamlyn
bd7977eed7
Purge naked excepts.
...
Most of these had obvious exceptions which would be thrown. Some I'm not
sure about but they should at least catch only Exception so as not to
ignore SystemExit and other inappropriate Error classes.
2013-02-06 13:05:17 +00:00
Tom Christie
55fd646631
Set many explicitly from mixins. Refs #564 .
2013-02-06 13:04:11 +00:00
Tom Christie
4788c87b76
Fix mismatch between template blocks and docs.
...
Fixes #639 .
2013-02-06 12:35:05 +00:00
Tom Christie
efb798cebc
Don't deprecate 'exclude'
...
Need to track outcome of Django's #19733 , and decide on approach
accordingly.
2013-02-06 08:48:41 +00:00
Tom Christie
7dc4bce4e2
Fix 2.6 compat
2013-02-04 21:35:47 +00:00
Tom Christie
937ef00808
Merge branch 'master' into 2.2
2013-02-04 21:19:11 +00:00
Tom Christie
221e77d357
Fix incorrect test name. Fixes #635
2013-02-04 21:18:54 +00:00
Tom Christie
0a38bc9db8
Deal with parser encodings properly
2013-02-04 21:16:34 +00:00
Tom Christie
b052c92ac3
Cleanup imports
...
Mostly adding `from __future__ import unicode_literals` everywhere.
2013-02-04 20:55:35 +00:00
Tom Christie
b82227e517
remove broken import
2013-02-04 20:38:18 +00:00
Tom Christie
8e846bdf52
Merge branch 'py3k' into 2.2
...
Conflicts:
rest_framework/relations.py
rest_framework/serializers.py
rest_framework/tests/relations_hyperlink.py
rest_framework/tests/relations_slug.py
2013-02-04 20:37:09 +00:00
Tom Christie
97f2b99495
Don't use deprecated xml style
2013-02-04 19:51:50 +00:00
Tom Christie
2c634c0e5c
Use request.QUERY_PARAMS internally
...
(instead of request.GET)
2013-02-04 19:51:31 +00:00
Tom Christie
00752dcd2a
Py3k cleanup
2013-02-01 15:07:51 +00:00
Tom Christie
f4f237e3ee
3.2, 3.3 compat
2013-02-01 14:03:28 +00:00
Tom Christie
d9c7b1c585
Merge branch 'p3k' of https://github.com/linovia/django-rest-framework into working
...
Conflicts:
rest_framework/authentication.py
rest_framework/relations.py
rest_framework/serializers.py
rest_framework/settings.py
rest_framework/tests/authentication.py
rest_framework/tests/genericrelations.py
rest_framework/tests/generics.py
rest_framework/tests/relations_hyperlink.py
rest_framework/tests/relations_nested.py
rest_framework/tests/relations_pk.py
rest_framework/tests/serializer.py
2013-02-01 11:58:55 +00:00
Tom Christie
d9b73e15c8
Serializers take many=<bool>
argument.
2013-01-31 17:06:23 +00:00
Tom Christie
f1e665673f
Tidying
2013-01-30 20:38:11 +00:00
Tom Christie
e4ac566625
Add dprecation warnings
2013-01-30 20:33:50 +00:00
Tom Christie
e24d29ec05
Tweak empty list implementation
2013-01-30 14:21:18 +00:00
Tom Christie
be6df3ae3c
Merge branch 'master' into many-fields
...
Conflicts:
rest_framework/relations.py
2013-01-30 13:41:56 +00:00
Tom Christie
9a4d01d687
Formatting fixes
2013-01-30 12:41:26 +00:00
Tom Christie
4601487248
Use many=True style for pk relations.
2013-01-30 12:41:18 +00:00
Fernando Rocha
41364b3be0
Added regretion test for issue #632
...
Signed-off-by: Fernando Rocha <fernandogrd@gmail.com>
2013-01-30 09:22:36 -03:00
Fernando Rocha
fceacd830f
Fix processing of ManyToManyField when it is empty
...
Signed-off-by: Fernando Rocha <fernandogrd@gmail.com>
2013-01-29 18:46:05 -03:00
Andrea de Marco
85e6360792
Update rest_framework/serializers.py
2013-01-28 22:08:40 +01:00
Tom Christie
a3a06d11cc
Ensure model field validation is performed for ModelSerializers with a custom restore_object method. Fixes #623 .
2013-01-28 12:56:42 +00:00
Michael Elovskikh
cb5cc70cba
Login page styles fix. Closes #618 . Made with 🍪
2013-01-28 18:01:44 +06:00
Tom Christie
b5d8f50f9d
Merge branch 'master' into many-fields
2013-01-26 21:37:43 +00:00
Tom Christie
a75db4cfb8
Version 2.1.17
2013-01-26 20:59:15 +00:00
Tom Christie
4d43e9f7de
Test for custom pagination serializers. Also refs #604 .
2013-01-26 20:55:09 +00:00
Tom Christie
a51bca32fd
Fix issues with custom pagination serializers
2013-01-26 20:54:41 +00:00
Tom Christie
b41f258ee5
Serializers should accept source='*' argument. Fixes #604 .
...
(Test also incoming)
2013-01-26 20:54:03 +00:00
Tom Christie
b783887c33
Test for GFK, using RelatedField. Refs #607 .
2013-01-25 14:36:27 +00:00
Tom Christie
b73d7e9bb4
Cleaning up GFK test module. Refs #607 .
2013-01-25 13:58:19 +00:00
Tom Christie
d6628d4e78
Test for #552 .
2013-01-24 08:58:19 +00:00
Tom Christie
4a4fe60e33
Merge pull request #603 from minddust/validation_error
...
Add failed testcase for fieldvalidation + fix
2013-01-23 01:21:26 -08:00
Tom Christie
b7abf14d3a
Pass PaginationSerializer context through to child ModelSerializer on init. Fixes #595 . Fixes #552 .
2013-01-23 07:38:13 +00:00
Stephan Groß
69e62457ef
Improve validate_<fieldname> fix
2013-01-23 07:53:54 +01:00
Stephan Groß
f0071dbccd
Add separate test for failed custom validation
2013-01-23 07:52:56 +01:00
Tom Christie
b7ab2aee46
Merge branch 'master' into unauthenticated_response
...
Conflicts:
docs/api-guide/authentication.md
2013-01-22 09:11:38 +00:00
Tom Christie
65b62d64ec
WWW-Authenticate responses
2013-01-21 21:29:49 +00:00
Tom Christie
778b0dddef
Merge pull request #602 from kevinastone/master
...
TestCase for `format_suffix_patterns`
2013-01-21 09:51:33 -08:00
Tom Christie
98bffa68e6
Don't do an inverted if test.
2013-01-21 17:42:39 +00:00
Kevin Stone
e7916ae0b1
Tweaked some method names to be more clear and added a docstring to the test case class.
...
Signed-off-by: Kevin Stone <kevinastone@gmail.com>
2013-01-21 09:37:50 -08:00
Stephan Groß
2250ab6418
Add possible solution for field validation error
2013-01-21 12:50:39 +01:00
Stephan Groß
dc1c57d595
Add failed testcase for fieldvalidation
2013-01-21 12:45:30 +01:00
Kevin Stone
71bd2faa79
Added test case for format_suffix_patterns to validate changes introduced with issue #593 .
...
Signed-off-by: Kevin Stone <kevinastone@gmail.com>
2013-01-20 13:03:38 -08:00
Tom Christie
771821af7d
Include kwargs in included URLs
2013-01-19 18:39:39 +00:00
Tom Christie
69083c3668
Drop print statement
2013-01-19 18:36:25 +00:00
Tom Christie
2c05faa52a
format_suffix_patterns
now support include
-style nested URL patterns. Fixes #593
2013-01-19 16:56:48 +00:00
Tom Christie
37d49429ca
Raise assertion errors if @api_view decorator is applied incorrectly. Fixes #596 .
2013-01-19 15:51:14 +00:00
Tom Christie
a98049c5de
Drop unneeded test
2013-01-19 15:25:32 +00:00
Tom Christie
4eb5861f36
Starting migration from ManyField to Field(many=True)
2013-01-18 23:36:35 +00:00
Tom Christie
211bb89eec
Raise Validation Errors when relationships receive incorrect types. Fixes #590 .
2013-01-18 21:29:21 +00:00
Tom Christie
6385ac519d
Revert accidental merge.
2013-01-18 19:47:57 +00:00
Mark Aaron Shirley
221f7326c7
Use None to delete nested object as opposed to _delete flag
2013-01-16 16:04:20 -08:00
Mark Aaron Shirley
34e14b01e4
Move nested serializer logic into .field_from_native()
2013-01-16 16:04:20 -08:00
Mark Aaron Shirley
2d62bcd5aa
Add one-to-one nested update and delete functionality
2013-01-16 16:04:20 -08:00
Mark Aaron Shirley
8e5003a1f6
Update errant test comment
2013-01-16 16:04:20 -08:00
Mark Aaron Shirley
46eea97380
Update one-to-one test names
2013-01-16 16:04:19 -08:00
Mark Aaron Shirley
e66eeb4af8
Remove commented out debug code
2013-01-16 16:04:19 -08:00
Mark Aaron Shirley
72c04d570d
Add nested create for 1to1 reverse relationships
2013-01-16 16:04:19 -08:00
Tom Christie
eb3d4d0e93
Drop bits of relations_slug tests which don't mirror existing tests.
2013-01-16 14:32:51 +00:00
Tom Christie
875841c76a
Merge branch 'master' of https://github.com/steve-gregory/django-rest-framework into slug-field-fixes
2013-01-16 13:24:09 +00:00
Steven Gregory
87029122c2
Added a new file 'relations_slug.py' that tests Nullable Foreign Keys and the SlugRelatedField
2013-01-15 13:49:48 -07:00
Tom Christie
685706ff2b
Merge pull request #584 from radiosilence/master
...
Adding timedelta support to JSONEncoder, and an example of how to add decode support to a serializer.
2013-01-15 05:25:24 -08:00
James Cleveland
4fc3b1ba56
Add timedelta encoder to the JSONEncoder class.
...
Whilst this commit adds *encoding* of timedeltas to a string of a floating
point value of the seconds, you must add your own serializer field for
whatever timedelta model field you are using. This is because Django doesn't
support any kind of timedelta field out-of-the-box, so you have to either
implement your own or use django-timedelta.
If this is the case and you want to serialise timedelta input, you will have
to implement your own special field to use for the timedelta, which is not
included in core as it is based on a 3rd party library. Here is an example:
import datetime
import timedelta
from django import forms
from django.core import validators
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from rest_framework.fields import WritableField
class TimedeltaField(WritableField):
type_name = 'TimedeltaField'
form_field_class = forms.FloatField
default_error_messages = {
'invalid': _("'%s' value must be in seconds."),
}
def from_native(self, value):
if value in validators.EMPTY_VALUES:
return None
try:
return datetime.timedelta(seconds=float(value))
except (TypeError, ValueError):
msg = self.error_messages['invalid'] % value
raise ValidationError(msg)
Which is based on the FloatField. This field can then be used in
your serializer like this:
from yourapp.fields import TimedeltaField
class YourSerializer(serializers.ModelSerializer):
duration = TimedeltaField()
2013-01-15 13:08:52 +00:00
Johannes Spielmann
e67b23f1ac
correcting template: closing tag was missing
2013-01-15 13:46:41 +01:00
Tom Christie
da6b9576c5
Update docstrings
2013-01-15 10:51:10 +00:00
Tom Christie
191135d7b0
Version 2.1.16
2013-01-14 09:20:44 +00:00
Tom Christie
d9acec3e6d
PK fields should only be read-only if they are an AutoField. Fixes #563
2013-01-12 09:43:14 +00:00
Tom Christie
73c4e5c460
auto_now and auto_now_add fields should be read only by default
2013-01-12 09:43:14 +00:00