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
a6e525cf
Commit
a6e525cf
authored
Apr 24, 2014
by
Sergey Sinitsyn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add help_text and verbose_name attribute mapping for related field
parent
1d404874
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
2 deletions
+35
-2
rest_framework/serializers.py
+8
-0
rest_framework/tests/models.py
+2
-1
rest_framework/tests/test_serializer.py
+25
-1
No files found.
rest_framework/serializers.py
View file @
a6e525cf
...
@@ -828,6 +828,10 @@ class ModelSerializer(Serializer):
...
@@ -828,6 +828,10 @@ class ModelSerializer(Serializer):
if
model_field
:
if
model_field
:
kwargs
[
'required'
]
=
not
(
model_field
.
null
or
model_field
.
blank
)
kwargs
[
'required'
]
=
not
(
model_field
.
null
or
model_field
.
blank
)
if
model_field
.
help_text
is
not
None
:
kwargs
[
'help_text'
]
=
model_field
.
help_text
if
model_field
.
verbose_name
is
not
None
:
kwargs
[
'label'
]
=
model_field
.
verbose_name
return
PrimaryKeyRelatedField
(
**
kwargs
)
return
PrimaryKeyRelatedField
(
**
kwargs
)
...
@@ -1088,6 +1092,10 @@ class HyperlinkedModelSerializer(ModelSerializer):
...
@@ -1088,6 +1092,10 @@ class HyperlinkedModelSerializer(ModelSerializer):
if
model_field
:
if
model_field
:
kwargs
[
'required'
]
=
not
(
model_field
.
null
or
model_field
.
blank
)
kwargs
[
'required'
]
=
not
(
model_field
.
null
or
model_field
.
blank
)
if
model_field
.
help_text
is
not
None
:
kwargs
[
'help_text'
]
=
model_field
.
help_text
if
model_field
.
verbose_name
is
not
None
:
kwargs
[
'label'
]
=
model_field
.
verbose_name
if
self
.
opts
.
lookup_field
:
if
self
.
opts
.
lookup_field
:
kwargs
[
'lookup_field'
]
=
self
.
opts
.
lookup_field
kwargs
[
'lookup_field'
]
=
self
.
opts
.
lookup_field
...
...
rest_framework/tests/models.py
View file @
a6e525cf
...
@@ -143,7 +143,8 @@ class ForeignKeyTarget(RESTFrameworkModel):
...
@@ -143,7 +143,8 @@ class ForeignKeyTarget(RESTFrameworkModel):
class
ForeignKeySource
(
RESTFrameworkModel
):
class
ForeignKeySource
(
RESTFrameworkModel
):
name
=
models
.
CharField
(
max_length
=
100
)
name
=
models
.
CharField
(
max_length
=
100
)
target
=
models
.
ForeignKey
(
ForeignKeyTarget
,
related_name
=
'sources'
)
target
=
models
.
ForeignKey
(
ForeignKeyTarget
,
related_name
=
'sources'
,
help_text
=
'Target'
,
verbose_name
=
'Target'
)
# Nullable ForeignKey
# Nullable ForeignKey
...
...
rest_framework/tests/test_serializer.py
View file @
a6e525cf
...
@@ -9,7 +9,8 @@ from django.utils.translation import ugettext_lazy as _
...
@@ -9,7 +9,8 @@ from django.utils.translation import ugettext_lazy as _
from
rest_framework
import
serializers
,
fields
,
relations
from
rest_framework
import
serializers
,
fields
,
relations
from
rest_framework.tests.models
import
(
HasPositiveIntegerAsChoice
,
Album
,
ActionItem
,
Anchor
,
BasicModel
,
from
rest_framework.tests.models
import
(
HasPositiveIntegerAsChoice
,
Album
,
ActionItem
,
Anchor
,
BasicModel
,
BlankFieldModel
,
BlogPost
,
BlogPostComment
,
Book
,
CallableDefaultValueModel
,
DefaultValueModel
,
BlankFieldModel
,
BlogPost
,
BlogPostComment
,
Book
,
CallableDefaultValueModel
,
DefaultValueModel
,
ManyToManyModel
,
Person
,
ReadOnlyManyToManyModel
,
Photo
,
RESTFrameworkModel
)
ManyToManyModel
,
Person
,
ReadOnlyManyToManyModel
,
Photo
,
RESTFrameworkModel
,
ForeignKeySource
,
ManyToManySource
)
from
rest_framework.tests.models
import
BasicModelSerializer
from
rest_framework.tests.models
import
BasicModelSerializer
import
datetime
import
datetime
import
pickle
import
pickle
...
@@ -176,6 +177,16 @@ class PositiveIntegerAsChoiceSerializer(serializers.ModelSerializer):
...
@@ -176,6 +177,16 @@ class PositiveIntegerAsChoiceSerializer(serializers.ModelSerializer):
fields
=
[
'some_integer'
]
fields
=
[
'some_integer'
]
class
ForeignKeySourceSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
ForeignKeySource
class
HyperlinkedForeignKeySourceSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
model
=
ForeignKeySource
class
BasicTests
(
TestCase
):
class
BasicTests
(
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
self
.
comment
=
Comment
(
self
.
comment
=
Comment
(
...
@@ -1600,6 +1611,19 @@ class ManyFieldHelpTextTest(TestCase):
...
@@ -1600,6 +1611,19 @@ class ManyFieldHelpTextTest(TestCase):
self
.
assertEqual
(
'Some help text.'
,
rel_field
.
help_text
)
self
.
assertEqual
(
'Some help text.'
,
rel_field
.
help_text
)
class
AttributeMappingOnAutogeneratedRelatedFields
(
TestCase
):
def
test_primary_key_related_field
(
self
):
serializer
=
ForeignKeySourceSerializer
()
self
.
assertEqual
(
serializer
.
fields
[
'target'
]
.
help_text
,
'Target'
)
self
.
assertEqual
(
serializer
.
fields
[
'target'
]
.
label
,
'Target'
)
def
test_hyperlinked_related_field
(
self
):
serializer
=
HyperlinkedForeignKeySourceSerializer
()
self
.
assertEqual
(
serializer
.
fields
[
'target'
]
.
help_text
,
'Target'
)
self
.
assertEqual
(
serializer
.
fields
[
'target'
]
.
label
,
'Target'
)
@unittest.skipUnless
(
PIL
is
not
None
,
'PIL is not installed'
)
@unittest.skipUnless
(
PIL
is
not
None
,
'PIL is not installed'
)
class
AttributeMappingOnAutogeneratedFieldsTests
(
TestCase
):
class
AttributeMappingOnAutogeneratedFieldsTests
(
TestCase
):
...
...
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