Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
2ed79b6d
Commit
2ed79b6d
authored
Jun 12, 2013
by
Ethan Fremen
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into writable-nested-modelserializer
parents
0e75bcd2
1cc2a7b2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
3 deletions
+44
-3
docs/topics/credits.md
+3
-0
rest_framework/fields.py
+10
-2
rest_framework/generics.py
+1
-1
rest_framework/tests/test_fields.py
+30
-0
No files found.
docs/topics/credits.md
View file @
2ed79b6d
...
@@ -141,6 +141,7 @@ The following people have helped make REST framework great.
...
@@ -141,6 +141,7 @@ The following people have helped make REST framework great.
*
David Medina -
[
copitux
]
*
David Medina -
[
copitux
]
*
Areski Belaid -
[
areski
]
*
Areski Belaid -
[
areski
]
*
Ethan Freman -
[
mindlace
]
*
Ethan Freman -
[
mindlace
]
*
David Sanders -
[
davesque
]
Many thanks to everyone who's contributed to the project.
Many thanks to everyone who's contributed to the project.
...
@@ -318,3 +319,5 @@ You can also contact [@_tomchristie][twitter] directly on twitter.
...
@@ -318,3 +319,5 @@ You can also contact [@_tomchristie][twitter] directly on twitter.
[
copitux
]:
https://github.com/copitux
[
copitux
]:
https://github.com/copitux
[
areski
]:
https://github.com/areski
[
areski
]:
https://github.com/areski
[
mindlace
]:
https://github.com/mindlace
[
mindlace
]:
https://github.com/mindlace
[
davesque
]:
https://github.com/davesque
rest_framework/fields.py
View file @
2ed79b6d
...
@@ -336,9 +336,13 @@ class ModelField(WritableField):
...
@@ -336,9 +336,13 @@ class ModelField(WritableField):
raise
ValueError
(
"ModelField requires 'model_field' kwarg"
)
raise
ValueError
(
"ModelField requires 'model_field' kwarg"
)
self
.
min_length
=
kwargs
.
pop
(
'min_length'
,
self
.
min_length
=
kwargs
.
pop
(
'min_length'
,
getattr
(
self
.
model_field
,
'min_length'
,
None
))
getattr
(
self
.
model_field
,
'min_length'
,
None
))
self
.
max_length
=
kwargs
.
pop
(
'max_length'
,
self
.
max_length
=
kwargs
.
pop
(
'max_length'
,
getattr
(
self
.
model_field
,
'max_length'
,
None
))
getattr
(
self
.
model_field
,
'max_length'
,
None
))
self
.
min_value
=
kwargs
.
pop
(
'min_value'
,
getattr
(
self
.
model_field
,
'min_value'
,
None
))
self
.
max_value
=
kwargs
.
pop
(
'max_value'
,
getattr
(
self
.
model_field
,
'max_value'
,
None
))
super
(
ModelField
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
super
(
ModelField
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
...
@@ -346,6 +350,10 @@ class ModelField(WritableField):
...
@@ -346,6 +350,10 @@ class ModelField(WritableField):
self
.
validators
.
append
(
validators
.
MinLengthValidator
(
self
.
min_length
))
self
.
validators
.
append
(
validators
.
MinLengthValidator
(
self
.
min_length
))
if
self
.
max_length
is
not
None
:
if
self
.
max_length
is
not
None
:
self
.
validators
.
append
(
validators
.
MaxLengthValidator
(
self
.
max_length
))
self
.
validators
.
append
(
validators
.
MaxLengthValidator
(
self
.
max_length
))
if
self
.
min_value
is
not
None
:
self
.
validators
.
append
(
validators
.
MinValueValidator
(
self
.
min_value
))
if
self
.
max_value
is
not
None
:
self
.
validators
.
append
(
validators
.
MaxValueValidator
(
self
.
max_value
))
def
from_native
(
self
,
value
):
def
from_native
(
self
,
value
):
rel
=
getattr
(
self
.
model_field
,
"rel"
,
None
)
rel
=
getattr
(
self
.
model_field
,
"rel"
,
None
)
...
...
rest_framework/generics.py
View file @
2ed79b6d
...
@@ -212,7 +212,7 @@ class GenericAPIView(views.APIView):
...
@@ -212,7 +212,7 @@ class GenericAPIView(views.APIView):
You may want to override this if you need to provide different
You may want to override this if you need to provide different
serializations depending on the incoming request.
serializations depending on the incoming request.
(Eg. admins get full serialization, others get basic serilization)
(Eg. admins get full serialization, others get basic seri
a
lization)
"""
"""
serializer_class
=
self
.
serializer_class
serializer_class
=
self
.
serializer_class
if
serializer_class
is
not
None
:
if
serializer_class
is
not
None
:
...
...
rest_framework/tests/test_fields.py
View file @
2ed79b6d
...
@@ -866,3 +866,33 @@ class FieldCallableDefault(TestCase):
...
@@ -866,3 +866,33 @@ class FieldCallableDefault(TestCase):
into
=
{}
into
=
{}
field
.
field_from_native
({},
{},
'field'
,
into
)
field
.
field_from_native
({},
{},
'field'
,
into
)
self
.
assertEqual
(
into
,
{
'field'
:
'foo bar'
})
self
.
assertEqual
(
into
,
{
'field'
:
'foo bar'
})
class
CustomIntegerField
(
TestCase
):
"""
Test that custom fields apply min_value and max_value constraints
"""
def
test_custom_fields_can_be_validated_for_value
(
self
):
class
MoneyField
(
models
.
PositiveIntegerField
):
pass
class
EntryModel
(
models
.
Model
):
bank
=
MoneyField
(
validators
=
[
validators
.
MaxValueValidator
(
100
)])
class
EntrySerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
EntryModel
entry
=
EntryModel
(
bank
=
1
)
serializer
=
EntrySerializer
(
entry
,
data
=
{
"bank"
:
11
})
self
.
assertTrue
(
serializer
.
is_valid
())
serializer
=
EntrySerializer
(
entry
,
data
=
{
"bank"
:
-
1
})
self
.
assertFalse
(
serializer
.
is_valid
())
serializer
=
EntrySerializer
(
entry
,
data
=
{
"bank"
:
101
})
self
.
assertFalse
(
serializer
.
is_valid
())
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment