Repository URL to install this package:
|
Version:
0.0.1 ▾
|
from django.core.exceptions import ObjectDoesNotExist
from rest_framework import serializers
from kaos_utils.models.utils import infuse_instance
class CreatableSlugRelatedField(serializers.SlugRelatedField):
def to_internal_value(self, data):
try:
return self.get_queryset().get(**{self.slug_field: data})
except ObjectDoesNotExist:
return self.get_queryset().create(**{self.slug_field: data})
except (TypeError, ValueError):
self.fail('invalid')
class RunModelCleanSerializer(serializers.ModelSerializer):
def validate(self, data):
if self.instance:
# TODO: it needs to run with instance infused with the new data
infuse_instance(self.instance, data)
self.instance.clean()
else:
self.Meta.model(**data).clean()
return data