adds owner field to the snippet creation process

This commit is contained in:
Emanuel Rodriguez 2022-08-09 22:14:21 -07:00
parent efa1329432
commit 1f8834c68b
3 changed files with 10 additions and 3 deletions

View File

@ -4,9 +4,11 @@ from django.contrib.auth.models import User
class SnippetSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source="owner.username")
class Meta:
model = Snippet
fields = ["id", "title", "code", "language", "line_numbers", "style"]
fields = ["id", "title", "code", "language", "line_numbers", "style", "owner"]
def create(self, validated_data):
return Snippet.objects.create(**validated_data)

View File

@ -29,6 +29,8 @@ from snippets.serializers import SnippetSerializer, UserSerializer
class SnippetList(APIView):
permission_classes = [IsAuthenticatedOrReadOnly]
def get(self, request, format=None):
snippets = Snippet.objects.all()
serializer = SnippetSerializer(snippets, many=True)
@ -37,7 +39,7 @@ class SnippetList(APIView):
def post(self, request, format=None):
serializer = SnippetSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
serializer.save(owner=request.user)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@ -68,6 +70,8 @@ class SnippetList(APIView):
class SnippetDetail(APIView):
permission_classes = [IsAuthenticatedOrReadOnly]
def get_object(self, pk):
try:
return Snippet.objects.get(pk=pk)

View File

@ -18,5 +18,6 @@ from django.urls import path, include
urlpatterns = [
path("", include("snippets.urls")),
path('admin/', admin.site.urls)
path('admin/', admin.site.urls),
path("api-auth/", include("rest_framework.urls"))
]