Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d08e9f3

Browse files
committed
Merge pull request #221 from scottfisk/fix-219
Fixed get_resource_name in case of non-model backed serializer.
2 parents 8f105c5 + 21823ec commit d08e9f3

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

‎example/tests/unit/test_utils.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
pytestmark = pytest.mark.django_db
1616

1717

18+
class NonModelResourceSerializer(serializers.Serializer):
19+
class Meta:
20+
resource_name = 'users'
21+
22+
1823
class ResourceSerializer(serializers.ModelSerializer):
1924
class Meta:
2025
fields = ('username',)
@@ -51,6 +56,11 @@ def test_get_resource_name():
5156
view.serializer_class.Meta.resource_name = 'rcustom'
5257
assert 'rcustom' == utils.get_resource_name(context), 'set on serializer'
5358

59+
view = GenericAPIView()
60+
view.serializer_class = NonModelResourceSerializer
61+
context = {'view': view}
62+
assert 'users' == utils.get_resource_name(context), 'derived from non-model serializer'
63+
5464

5565
def test_format_keys():
5666
underscored = {

‎rest_framework_json_api/utils.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,10 @@ def get_resource_type_from_manager(manager):
214214

215215

216216
def get_resource_type_from_serializer(serializer):
217-
returngetattr(
218-
serializer.Meta,
219-
'resource_name',
220-
get_resource_type_from_model(serializer.Meta.model))
217+
ifhasattr(serializer.Meta, 'resource_name'):
218+
returnserializer.Meta.resource_name
219+
else:
220+
returnget_resource_type_from_model(serializer.Meta.model)
221221

222222

223223
def get_included_serializers(serializer):

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /