adds owner field to the snippet creation process
This commit is contained in:
parent
efa1329432
commit
1f8834c68b
|
@ -4,9 +4,11 @@ from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
|
||||||
class SnippetSerializer(serializers.ModelSerializer):
|
class SnippetSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
owner = serializers.ReadOnlyField(source="owner.username")
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Snippet
|
model = Snippet
|
||||||
fields = ["id", "title", "code", "language", "line_numbers", "style"]
|
fields = ["id", "title", "code", "language", "line_numbers", "style", "owner"]
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
return Snippet.objects.create(**validated_data)
|
return Snippet.objects.create(**validated_data)
|
||||||
|
|
|
@ -29,6 +29,8 @@ from snippets.serializers import SnippetSerializer, UserSerializer
|
||||||
|
|
||||||
class SnippetList(APIView):
|
class SnippetList(APIView):
|
||||||
|
|
||||||
|
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||||
|
|
||||||
def get(self, request, format=None):
|
def get(self, request, format=None):
|
||||||
snippets = Snippet.objects.all()
|
snippets = Snippet.objects.all()
|
||||||
serializer = SnippetSerializer(snippets, many=True)
|
serializer = SnippetSerializer(snippets, many=True)
|
||||||
|
@ -37,7 +39,7 @@ class SnippetList(APIView):
|
||||||
def post(self, request, format=None):
|
def post(self, request, format=None):
|
||||||
serializer = SnippetSerializer(data=request.data)
|
serializer = SnippetSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
serializer.save()
|
serializer.save(owner=request.user)
|
||||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
@ -68,6 +70,8 @@ class SnippetList(APIView):
|
||||||
|
|
||||||
class SnippetDetail(APIView):
|
class SnippetDetail(APIView):
|
||||||
|
|
||||||
|
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||||
|
|
||||||
def get_object(self, pk):
|
def get_object(self, pk):
|
||||||
try:
|
try:
|
||||||
return Snippet.objects.get(pk=pk)
|
return Snippet.objects.get(pk=pk)
|
||||||
|
|
|
@ -18,5 +18,6 @@ from django.urls import path, include
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", include("snippets.urls")),
|
path("", include("snippets.urls")),
|
||||||
path('admin/', admin.site.urls)
|
path('admin/', admin.site.urls),
|
||||||
|
path("api-auth/", include("rest_framework.urls"))
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue