diff --git a/api/serializers.py b/api/serializers.py new file mode 100644 index 0000000..251a6c1 --- /dev/null +++ b/api/serializers.py @@ -0,0 +1,9 @@ +from rest_framework import serializers + +from diary.models import Diary + + +class DiarySerializer(serializers.ModelSerializer): + class Meta: + model = Diary + fields = ['id', 'name', 'content', 'updated_at'] diff --git a/api/urls.py b/api/urls.py new file mode 100644 index 0000000..26e2024 --- /dev/null +++ b/api/urls.py @@ -0,0 +1,13 @@ +from django.urls import path, include +from rest_framework import routers + +from api import views + +app_name = 'api' + +router = routers.SimpleRouter() +router.register('diaries', viewset=views.DiaryViewSet) + +urlpatterns = [ + path('', include(router.urls)), +] \ No newline at end of file diff --git a/api/views.py b/api/views.py index 91ea44a..a57ea2a 100644 --- a/api/views.py +++ b/api/views.py @@ -1,3 +1,10 @@ from django.shortcuts import render +from rest_framework import viewsets -# Create your views here. +from api.serializers import DiarySerializer +from diary.models import Diary + + +class DiaryViewSet(viewsets.ModelViewSet): + queryset = Diary.objects.all() + serializer_class = DiarySerializer diff --git a/config/settings.py b/config/settings.py index d47595c..066c10e 100644 --- a/config/settings.py +++ b/config/settings.py @@ -37,6 +37,11 @@ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + + 'rest_framework', + + 'api.apps.ApiConfig', + 'diary.apps.DiaryConfig', ] MIDDLEWARE = [ @@ -105,7 +110,7 @@ LANGUAGE_CODE = 'en-us' -TIME_ZONE = 'UTC' +TIME_ZONE = 'Asia/Tokyo' USE_I18N = True diff --git a/config/urls.py b/config/urls.py index 5006338..4aa7c87 100644 --- a/config/urls.py +++ b/config/urls.py @@ -15,8 +15,9 @@ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin -from django.urls import path +from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), + path('api/', include('api.urls')), ] diff --git a/diary/admin.py b/diary/admin.py index 8c38f3f..6093f94 100644 --- a/diary/admin.py +++ b/diary/admin.py @@ -1,3 +1,10 @@ from django.contrib import admin -# Register your models here. +from diary.models import Diary + + +class DiaryModelAdmin(admin.ModelAdmin): + list_display = ('name', 'content', 'updated_at') + + +admin.site.register(Diary, DiaryModelAdmin) diff --git a/diary/migrations/0001_initial.py b/diary/migrations/0001_initial.py new file mode 100644 index 0000000..fa6e5e1 --- /dev/null +++ b/diary/migrations/0001_initial.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.8 on 2023-12-23 03:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Diary', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, max_length=50)), + ('content', models.JSONField(blank=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ], + ), + ] diff --git a/diary/models.py b/diary/models.py index 71a8362..98c441c 100644 --- a/diary/models.py +++ b/diary/models.py @@ -1,3 +1,7 @@ from django.db import models -# Create your models here. + +class Diary(models.Model): + name = models.CharField(max_length=50, blank=True, null=False) + content = models.JSONField(blank=True, null=False) + updated_at = models.DateTimeField(auto_now=True)