36 lines
1.0 KiB
Python
36 lines
1.0 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", title=validated_data.get('title'), list_title=list_title)
|
|
return super().create(validated_data)
|