From ed49940dd1df940a218d88a5b1f99617e1a6cfae Mon Sep 17 00:00:00 2001 From: Vova Date: Wed, 29 Apr 2026 09:54:08 +0200 Subject: [PATCH 1/2] Code writ --- car/serializers.py | 7 ++++++- main.py | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/car/serializers.py b/car/serializers.py index 3026b2b3..4b318f76 100644 --- a/car/serializers.py +++ b/car/serializers.py @@ -2,4 +2,9 @@ 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(read_only=False, allow_blank=True, allow_null=True) diff --git a/main.py b/main.py index c8ff592b..36c8b2b2 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,19 @@ from car.models import Car +from car.serializers import CarSerializer + +import io +from rest_framework.renderers import JSONRenderer +from rest_framework.parsers import JSONParser + def serialize_car_object(car: Car) -> bytes: - pass + serialized_car = CarSerializer(car).data + json = JSONRenderer().render(serialized_car) + return json def deserialize_car_object(json: bytes) -> Car: - pass + stream = io.BytesIO(json) + data = JSONParser().parse(stream) + return Car(**data) From 30bcaa15cd5b57e2b66bd7a56b2d38c637f5ceb1 Mon Sep 17 00:00:00 2001 From: Vova Date: Wed, 29 Apr 2026 10:01:48 +0200 Subject: [PATCH 2/2] Code writ --- car/migrations/0001_initial.py | 26 ++++++++++++++++++++++++++ car/serializers.py | 6 +++++- main.py | 5 ++--- 3 files changed, 33 insertions(+), 4 deletions(-) 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..087f0b98 --- /dev/null +++ b/car/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# Generated by Django 4.1 on 2026-04-29 07:55 + +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)), + ], + ), + ] diff --git a/car/serializers.py b/car/serializers.py index 4b318f76..3208ebbd 100644 --- a/car/serializers.py +++ b/car/serializers.py @@ -7,4 +7,8 @@ class CarSerializer(serializers.Serializer): model = serializers.CharField(max_length=64) horse_powers = serializers.IntegerField(min_value=1, max_value=1914) is_broken = serializers.BooleanField() - problem_description = serializers.CharField(read_only=False, allow_blank=True, allow_null=True) + problem_description = serializers.CharField( + required=False, + allow_blank=True, + allow_null=True + ) diff --git a/main.py b/main.py index 36c8b2b2..ebe7ccb3 100644 --- a/main.py +++ b/main.py @@ -6,10 +6,9 @@ from rest_framework.parsers import JSONParser - def serialize_car_object(car: Car) -> bytes: - serialized_car = CarSerializer(car).data - json = JSONRenderer().render(serialized_car) + serialized_car = CarSerializer(car) + json = JSONRenderer().render(serialized_car.data) return json