Skip to content

Commit

Permalink
Solution
Browse files Browse the repository at this point in the history
  • Loading branch information
halyna-baklanova committed Nov 16, 2024
1 parent 8f70b64 commit f897583
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 8 deletions.
25 changes: 25 additions & 0 deletions author/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 4.1 on 2024-11-16 08:40

from django.db import migrations, models


class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='Author',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('first_name', models.CharField(max_length=64)),
('last_name', models.CharField(max_length=64)),
('pseudonym', models.CharField(blank=True, max_length=64, null=True)),
('age', models.IntegerField()),
('retired', models.BooleanField()),
],
),
]
14 changes: 11 additions & 3 deletions author/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,27 @@


class AuthorSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(read_only=True)
author_id = serializers.IntegerField(read_only=True)
first_name = serializers.CharField(max_length=64)
last_name = serializers.CharField(max_length=64)
pseudonym = serializers.CharField(max_length=64, required=False)
age = serializers.IntegerField()
retired = serializers.BooleanField()

class Meta:
model = Author
fields = "__all__"

def create(self, validated_data):
return Author.objects.create(**validated_data)

def update(self, instance, validated_data):
instance.first_name = validated_data.get("first_name", instance.first_name)
instance.last_name = validated_data.get("last_name", instance.last_name)
instance.first_name = validated_data.get(
"first_name", instance.first_name
)
instance.last_name = validated_data.get(
"last_name", instance.last_name
)
instance.retired = validated_data.get("retired", instance.retired)
instance.age = validated_data.get("age", instance.age)
instance.retired = validated_data.get("retired", instance.retired)
Expand Down
2 changes: 1 addition & 1 deletion author/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from author.models import Author
from author.serializers import AuthorSerializer

AUTHORS_URL = reverse("author:manage-list")
AUTHORS_URL = reverse("author:author-list")


class AuthorApiTests(TestCase):
Expand Down
14 changes: 12 additions & 2 deletions author/urls.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# Create your urls here
from django.urls import path, include
from rest_framework import routers

urlpatterns = []
from author.views import AuthorViewSet

router = routers.DefaultRouter()
router.register("manage", AuthorViewSet, basename="author")

urlpatterns = [
path("", include(router.urls))
]

app_name = "author"
7 changes: 5 additions & 2 deletions author/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
from rest_framework import viewsets

from author.models import Author
from author.serializers import AuthorSerializer


class AuthorViewSet(viewsets.ModelViewSet):
# write your code here
pass
queryset = Author.objects.all()
serializer_class = AuthorSerializer

0 comments on commit f897583

Please sign in to comment.