본문 바로가기

BackEnd/Django

[Django]Notification API

from django.urls import path
from . import views

app_name = "notifications"
urlpatterns = [
path("", view=views.Notifications.as_view(), name="notification"),
]


URL생성


from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from . import models, serializers

class Notifications(APIView):

def get(self, request, format=None):

user= request.user

notifications = models.Notification.objects.filter(to=user)

serializer = serializers.NotificationSerializer(
notifications, many=True)

return Response(data=serializer.data, status = status.HTTP_200_OK)


view생성


from rest_framework import serializers
from . import models
from Moonstargram.users import serializers as user_serializers
from Moonstargram.images import serializers as image_serializers

class NotificationSerializer(serializers.ModelSerializer):

creator = user_serializers.ListUserSerializer()
image = image_serializers.SmallImageSerializer()

class Meta:
model = models.Notification
fields = '__all__'


serializer생성


이때 image와 user에 있는 serializer를 nesting



path(
"notifications/",
include("Moonstargram.notifications.urls", namespace="notifications"),
),


config url에 url추가!