Compare commits
6 Commits
feat_base_
...
feat_4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc90f23cd8 | ||
|
|
920c7f52bd | ||
|
|
88e19efc0b | ||
|
|
df54d92ecc | ||
|
|
8bf990b5f6 | ||
| 4e61029ce6 |
@@ -1,5 +1,7 @@
|
|||||||
from rest_framework import viewsets, serializers, permissions
|
from rest_framework import viewsets, serializers, permissions
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
|
from rest_framework.response import Response
|
||||||
|
from rest_framework import status
|
||||||
|
|
||||||
from .models import ToDoList
|
from .models import ToDoList
|
||||||
|
|
||||||
@@ -9,12 +11,43 @@ class ToDoListSerializer(serializers.HyperlinkedModelSerializer):
|
|||||||
model = ToDoList
|
model = ToDoList
|
||||||
fields = ["title", "created_at"]
|
fields = ["title", "created_at"]
|
||||||
|
|
||||||
|
class WriteToDoListSerializer(serializers.Serializer):
|
||||||
|
class Meta:
|
||||||
|
model = ToDoList
|
||||||
|
fields = ["title", "created_at", "user"]
|
||||||
|
|
||||||
|
def create(self, validated_data):
|
||||||
|
return ToDoList.objects.create(**validated_data)
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
instance.title = validated_data.get('title', instance.title)
|
||||||
|
instance.user = validated_data.get('user', instance.user)
|
||||||
|
instance.save()
|
||||||
|
return instance
|
||||||
|
|
||||||
class ToDoListViewSet(viewsets.ModelViewSet):
|
class ToDoListViewSet(viewsets.ModelViewSet):
|
||||||
queryset = ToDoList.objects.all()
|
|
||||||
serializer_class = ToDoListSerializer
|
serializer_class = ToDoListSerializer
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
permission_classes = [permissions.IsAuthenticated]
|
||||||
|
def get_queryset(self):
|
||||||
|
queryset = ToDoList.objects.all()
|
||||||
|
print(type(queryset), queryset.__dict__)
|
||||||
|
user = self.request.user
|
||||||
|
print(type(user), user.__dict__)
|
||||||
|
return queryset.filter(user=user)
|
||||||
|
|
||||||
|
def create(self, request):
|
||||||
|
data = {
|
||||||
|
'user': request.user,
|
||||||
|
'title': request.data['title'],
|
||||||
|
}
|
||||||
|
serializer = WriteToDoListSerializer(data=data)
|
||||||
|
print(serializer.__dict__)
|
||||||
|
if serializer.is_valid():
|
||||||
|
serializer.save()
|
||||||
|
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||||
|
else:
|
||||||
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register(r"lists", ToDoListViewSet)
|
router.register(r"lists", ToDoListViewSet, basename="ToDoList")
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ SECRET_KEY = "django-insecure-toz+*lt(ejm!l*)92w2ciqoh^1kz#a(abbpcn54-dbw(nxoy&7
|
|||||||
DEBUG = True
|
DEBUG = True
|
||||||
|
|
||||||
ALLOWED_HOSTS = []
|
ALLOWED_HOSTS = []
|
||||||
|
if DEBUG:
|
||||||
|
ALLOWED_HOSTS = ["0.0.0.0"]
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
@@ -40,8 +41,19 @@ INSTALLED_APPS = [
|
|||||||
"django.contrib.messages",
|
"django.contrib.messages",
|
||||||
"django.contrib.staticfiles",
|
"django.contrib.staticfiles",
|
||||||
"rest_framework",
|
"rest_framework",
|
||||||
|
"drf_yasg",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
SWAGGER_SETTINGS = {
|
||||||
|
'SECURITY_DEFINITIONS': {
|
||||||
|
'Bearer': {
|
||||||
|
'type': 'apiKey',
|
||||||
|
'name': 'Authorization',
|
||||||
|
'in': 'header'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
"django.middleware.security.SecurityMiddleware",
|
"django.middleware.security.SecurityMiddleware",
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
|
|||||||
@@ -6,8 +6,21 @@ from rest_framework_simplejwt.views import (
|
|||||||
TokenRefreshView,
|
TokenRefreshView,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from rest_framework import permissions
|
||||||
|
from drf_yasg.views import get_schema_view
|
||||||
|
from drf_yasg import openapi
|
||||||
|
|
||||||
from .api import router
|
from .api import router
|
||||||
|
|
||||||
|
schema_view = get_schema_view(
|
||||||
|
openapi.Info(
|
||||||
|
title="ToDo List",
|
||||||
|
default_version='v1',
|
||||||
|
description="Swagger Interface for ToDo List",
|
||||||
|
),
|
||||||
|
public=True,
|
||||||
|
permission_classes=(permissions.AllowAny,),
|
||||||
|
)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("admin/", admin.site.urls),
|
path("admin/", admin.site.urls),
|
||||||
@@ -15,4 +28,5 @@ urlpatterns = [
|
|||||||
path("api/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"),
|
path("api/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"),
|
||||||
path("api/", include(router.urls)),
|
path("api/", include(router.urls)),
|
||||||
path("api-auth/", include("rest_framework.urls", namespace="rest_framework")),
|
path("api-auth/", include("rest_framework.urls", namespace="rest_framework")),
|
||||||
|
path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -21,3 +21,4 @@ toml==0.10.2
|
|||||||
urllib3==1.26.4
|
urllib3==1.26.4
|
||||||
djangorestframework-simplejwt==4.6.0
|
djangorestframework-simplejwt==4.6.0
|
||||||
psycopg2-binary>=2.8
|
psycopg2-binary>=2.8
|
||||||
|
drf-yasg==1.20.0
|
||||||
|
|||||||
Reference in New Issue
Block a user