From 6aaf878e3721664e17159c1f437766751061d745 Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 26 Apr 2026 22:24:17 +0300 Subject: [PATCH 1/2] Solution --- car/serializers.py | 24 +++++++++++++++++++++++- main.py | 16 ++++++++++++++-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/car/serializers.py b/car/serializers.py index 3026b2b3..3cbaa3df 100644 --- a/car/serializers.py +++ b/car/serializers.py @@ -1,5 +1,27 @@ from rest_framework import serializers +from car.models import Car + class CarSerializer(serializers.Serializer): - pass + id = serializers.IntegerField( + read_only=True + ) + manufacturer = serializers.CharField( + max_length=64, + ) + model = serializers.CharField( + max_length=64, + ) + horse_powers = serializers.IntegerField( + min_value=1, + max_value=1914, + ) + is_broken = serializers.BooleanField() + problem_description = serializers.CharField( + allow_null=True, + required=False, + ) + + def create(self, validated_data): + return Car.objects.create(**validated_data) diff --git a/main.py b/main.py index c8ff592b..5cd453c6 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,21 @@ +from io import BytesIO + +from rest_framework.parsers import JSONParser +from rest_framework.renderers import JSONRenderer + from car.models import Car +from car.serializers import CarSerializer def serialize_car_object(car: Car) -> bytes: - pass + serializer = CarSerializer(car) + json = JSONRenderer().render(serializer.data) + return json def deserialize_car_object(json: bytes) -> Car: - pass + stream = BytesIO(json) + data = JSONParser().parse(stream) + serializer = CarSerializer(data=data) + serializer.is_valid(raise_exception=True) + return serializer.save() From 9fe46ccdb19f68215a8ae0bc3f2711ba571eed23 Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 26 Apr 2026 22:29:38 +0300 Subject: [PATCH 2/2] Solution --- car/migrations/0001_initial.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 car/migrations/0001_initial.py diff --git a/car/migrations/0001_initial.py b/car/migrations/0001_initial.py new file mode 100644 index 00000000..ab30fcdf --- /dev/null +++ b/car/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# Generated by Django 4.1 on 2026-04-26 19:16 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Car', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('manufacturer', models.CharField(max_length=64)), + ('model', models.CharField(max_length=64)), + ('horse_powers', models.PositiveSmallIntegerField(validators=[django.core.validators.MaxValueValidator(1914), django.core.validators.MinValueValidator(1)])), + ('is_broken', models.BooleanField()), + ('problem_description', models.TextField(blank=True, null=True)), + ], + ), + ]