vbv/server/vbv_lernwelt/simpletodo/serializers.py

42 lines
1.1 KiB
Python

import structlog
from rest_framework import serializers
from rest_framework.serializers import ModelSerializer
from vbv_lernwelt.simpletodo.models import SimpleTask, SimpleList
logger = structlog.get_logger(__name__)
class SimpleTaskSerializer(ModelSerializer):
list_title = serializers.CharField(max_length=100)
class Meta:
model = SimpleTask
fields = [
"id",
"title",
"text",
"done",
"deadline",
"list_title",
]
def create(self, validated_data):
user = validated_data.pop("user", None)
if user is None:
raise serializers.ValidationError("User is required")
list_title = validated_data.pop("list_title")
simple_list, _ = SimpleList.objects.get_or_create(title=list_title, user=user)
validated_data["list"] = simple_list
logger.debug(
"Creating task",
label="simpletodo",
dt={"s1": 3, "s2": 4},
title=validated_data.get("title"),
list_title=list_title,
)
return super().create(validated_data)