반응형
/images/3/like/
0. create the url and the view
-
take the id from the url
-
to find and image with id
-
to create a like for image
-
to check a like already exist
0. create the url and the view(views.py)
1
2
3
|
class LikeImage(APIView) :
def get(self, request, format=None) :
return Response(status=200)
|
cs |
1. take the id from the url (urls.py)
1
2
3
|
urlpatterns = [
path('/like/', view=views.LikeImage.as_view(), name="like_image")
]
|
cs |
2. to find and image with id (views.py)
1
2
3
4
5
6
7
8
|
class LikeImage(APIView) :
def get(self, request, id, format=None) :
try :
image = models.Image.objects.get(id=id)
except models.Image.DoesNotExist :
return Response(status=404)
return Response(status=200)
|
cs |
3. to create a like for image (views.py)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class LikeImage(APIView) :
def get(self, request, id, format=None) :
try :
get_image = models.Image.objects.get(id=id)
except models.Image.DoesNotExist :
return Response(status=404)
new_like = models.Like.objects.create(
creator = request.user,
image = get_image
)
new_like.save()
return Response(status=200)
|
cs |
4. to check a like already exist (views.py)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
class LikeImage(APIView) :
def get(self, request, id, format=None) :
try :
get_image = models.Image.objects.get(id=id)
except models.Image.DoesNotExist :
return Response(status=status.HTTP_404_NOT_FOUND)
try :
check_like = models.Like.objects.get(
creator = request.user,
image = get_image
)
check_like.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
except models.Like.DoesNotExist :
new_like = models.Like.objects.create(
creator = request.user,
image = get_image
)
new_like.save()
return Response(status=status.HTTP_201_CREATED)
|
cs |
반응형
'BackEnd > PYTHON, Django' 카테고리의 다른 글
Feed API (0) | 2019.12.20 |
---|---|
REST FRAMEWORK - API View (0) | 2019.12.10 |
REST FRAMEWORK - serializers (0) | 2019.12.10 |
REST FRAMEWORK - MAKE API (0) | 2019.12.10 |
Admin Panel (0) | 2019.12.09 |