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 routers
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import status
|
||||
|
||||
from .models import ToDoList
|
||||
|
||||
@@ -9,12 +11,43 @@ class ToDoListSerializer(serializers.HyperlinkedModelSerializer):
|
||||
model = ToDoList
|
||||
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):
|
||||
queryset = ToDoList.objects.all()
|
||||
serializer_class = ToDoListSerializer
|
||||
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.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
|
||||
|
||||
ALLOWED_HOSTS = []
|
||||
|
||||
if DEBUG:
|
||||
ALLOWED_HOSTS = ["0.0.0.0"]
|
||||
|
||||
# Application definition
|
||||
|
||||
@@ -40,8 +41,19 @@ INSTALLED_APPS = [
|
||||
"django.contrib.messages",
|
||||
"django.contrib.staticfiles",
|
||||
"rest_framework",
|
||||
"drf_yasg",
|
||||
]
|
||||
|
||||
SWAGGER_SETTINGS = {
|
||||
'SECURITY_DEFINITIONS': {
|
||||
'Bearer': {
|
||||
'type': 'apiKey',
|
||||
'name': 'Authorization',
|
||||
'in': 'header'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MIDDLEWARE = [
|
||||
"django.middleware.security.SecurityMiddleware",
|
||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||
|
||||
@@ -6,8 +6,21 @@ from rest_framework_simplejwt.views import (
|
||||
TokenRefreshView,
|
||||
)
|
||||
|
||||
from rest_framework import permissions
|
||||
from drf_yasg.views import get_schema_view
|
||||
from drf_yasg import openapi
|
||||
|
||||
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 = [
|
||||
path("admin/", admin.site.urls),
|
||||
@@ -15,4 +28,5 @@ urlpatterns = [
|
||||
path("api/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"),
|
||||
path("api/", include(router.urls)),
|
||||
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
|
||||
djangorestframework-simplejwt==4.6.0
|
||||
psycopg2-binary>=2.8
|
||||
drf-yasg==1.20.0
|
||||
|
||||
Reference in New Issue
Block a user