Skip to content

Commit dc7d831

Browse files
author
Carlton Gibson
committed
Mostly 3.0 ready
1 parent 8ab529c commit dc7d831

3 files changed

Lines changed: 12 additions & 11 deletions

File tree

snippets/permissions.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@ def has_object_permission(self, request, view, obj):
1111
if request.method in permissions.SAFE_METHODS:
1212
return True
1313

14+
method = request.method
15+
1416
# Write permissions are only allowed to the owner of the snippet
1517
return obj.owner == request.user

snippets/serializers.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,16 @@
44

55

66
class SnippetSerializer(serializers.HyperlinkedModelSerializer):
7-
owner = serializers.Field(source='owner.username')
7+
owner = serializers.ReadOnlyField(source='owner.username')
88
highlight = serializers.HyperlinkedIdentityField(view_name='snippet-highlight', format='html')
99

1010
class Meta:
1111
model = Snippet
1212
fields = ('url', 'highlight', 'owner',
1313
'title', 'code', 'linenos', 'language', 'style')
14-
15-
14+
1615
class UserSerializer(serializers.HyperlinkedModelSerializer):
17-
snippets = serializers.HyperlinkedRelatedField(view_name='snippet-detail', many=True)
16+
snippets = serializers.HyperlinkedRelatedField(queryset=Snippet.objects.all(), view_name='snippet-detail', many=True)
1817

1918
class Meta:
2019
model = User

snippets/views.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from rest_framework import permissions
33
from rest_framework import renderers
44
from rest_framework import viewsets
5-
from rest_framework.decorators import link
5+
from rest_framework.decorators import detail_route
66
from rest_framework.response import Response
77
from snippets.models import Snippet
88
from snippets.permissions import IsOwnerOrReadOnly
@@ -24,17 +24,17 @@ class SnippetViewSet(viewsets.ModelViewSet):
2424
"""
2525
queryset = Snippet.objects.all()
2626
serializer_class = SnippetSerializer
27-
permission_classes = (permissions.IsAuthenticatedOrReadOnly,
28-
IsOwnerOrReadOnly,)
27+
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
28+
# IsOwnerOrReadOnly,)
2929

30-
@link(renderer_classes=(renderers.StaticHTMLRenderer,))
30+
@detail_route(renderer_classes=(renderers.StaticHTMLRenderer,))
3131
def highlight(self, request, *args, **kwargs):
3232
snippet = self.get_object()
3333
return Response(snippet.highlighted)
3434

35-
def pre_save(self, obj):
36-
obj.owner = self.request.user
37-
35+
def perform_create(self, serializer):
36+
serializer.save(owner=self.request.user)
37+
3838

3939
class UserViewSet(viewsets.ReadOnlyModelViewSet):
4040
"""

0 commit comments

Comments
 (0)