49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from ..models import Animal, RescueOrganization, AdoptionNotice, Species, Image
|
|
from rest_framework import serializers
|
|
|
|
|
|
class AdoptionNoticeSerializer(serializers.HyperlinkedModelSerializer):
|
|
class Meta:
|
|
model = AdoptionNotice
|
|
fields = ['created_at', 'last_checked', "searching_since", "name", "description", "further_information",
|
|
"group_only"]
|
|
|
|
|
|
class AnimalCreateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Animal
|
|
fields = ["name", "date_of_birth", "description", "species", "sex", "adoption_notice"]
|
|
|
|
|
|
class AnimalGetSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Animal
|
|
fields = "__all__"
|
|
|
|
|
|
class RescueOrganizationSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = RescueOrganization
|
|
exclude = ["internal_comment", "allows_using_materials"]
|
|
|
|
|
|
class ImageCreateSerializer(serializers.ModelSerializer):
|
|
@staticmethod
|
|
def _animal_or_an(value):
|
|
if not value in ["animal", "adoption_notice"]:
|
|
raise serializers.ValidationError(
|
|
'Set either animal or adoption_notice, depending on what type of object the image should be attached to.')
|
|
|
|
attach_to_type = serializers.CharField(validators=[_animal_or_an])
|
|
attach_to = serializers.IntegerField()
|
|
|
|
class Meta:
|
|
model = Image
|
|
exclude = ["owner"]
|
|
|
|
|
|
class SpeciesSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Species
|
|
fields = "__all__"
|