Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*.iml
.env
.DS_Store
venv/
vevn/
.pytest_cache/
**__pycache__/
**db.sqlite3
32 changes: 31 additions & 1 deletion car/serializers.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
from rest_framework import serializers

from car.models import Car


class CarSerializer(serializers.Serializer):
pass
manufacturer = serializers.CharField(max_length=64)
model = serializers.CharField(max_length=64)
horse_power = serializers.IntegerField(
min_value=0, max_value=100
)
is_broken = serializers.BooleanField()
problem_description = serializers.CharField(allow_null=True)

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

def update(self, instance, validated_data):
instance.manufacturer = validated_data.get(
"manufacturer", instance.manufacturer
)
instance.model = validated_data.get(
"model", instance.model
)
instance.horse_power = validated_data.get(
"horse_power", instance.horse_power
)
instance.is_broken = validated_data.get(
"is_broken", instance.is_broken
)
instance.problem_description = validated_data.get(
"problem_description", instance.problem_description
)
instance.save()
return instance
20 changes: 17 additions & 3 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
from car.models import Car

from rest_framework.renderers import JSONRenderer

from car.serializers import CarSerializer
import io
from rest_framework.parsers import JSONParser


def serialize_car_object(car: Car) -> bytes:
pass
serializer = CarSerializer(instance=car)
json_data = JSONRenderer().render(serializer.data)
return json_data


def deserialize_car_object(json: bytes) -> Car:
pass
def deserialize_car_object(json: bytes):
stream = io.BytesIO(json)
data = JSONParser().parse(stream)
serializer = CarSerializer(data=data)
if serializer.is_valid(raise_exception=True):
car = serializer.save()
return car
return None
Loading