class BasicNormalizedDataSerializer(serializers.ModelSerializer): source = serializers.HiddenField(default=serializers.CurrentUserDefault()) class Meta: model = models.NormalizedData fields = ('data', 'source')
class ActivitySerializer(serializers.ModelSerializer): """DRF Serializer for the Activity model detail view""" user = serializers.HiddenField(default=CurrentUserDefault()) included_serializers = { 'sport': 'discovery_service.serializers.SportSerializer', 'route': 'discovery_service.serializers.RouteSerializer', } class Meta: model = models.Activity resource_name = 'hypoxic-activity' fields = [ 'user', 'id', 'name', 'sport', 'route', 'route_upload_status', 'description', 'created_date', 'updated_date', 'is_archived', ] extra_kwargs = { 'created_date': {'read_only': True}, 'updated_date': {'read_only': True}, 'is_archived': {'read_only': True} }
class FullNormalizedDataSerializer(serializers.ModelSerializer): tasks = serializers.PrimaryKeyRelatedField(many=True, read_only=False, queryset=CeleryTaskResult.objects.all()) source = serializers.HiddenField(default=serializers.CurrentUserDefault()) class Meta: model = models.NormalizedData fields = ('data', 'source', 'raw', 'tasks')
class BasicNormalizedDataSerializer(serializers.ModelSerializer): # link to self url = fields.ShareIdentityField(view_name='api:normalizeddata-detail') source = serializers.HiddenField(default=serializers.CurrentUserDefault()) class Meta: model = models.NormalizedData fields = ('data', 'source', 'url')
class ProviderRegistrationSerializer(ShareModelSerializer): status = serializers.SerializerMethodField() submitted_at = serializers.DateTimeField(read_only=True) submitted_by = serializers.HiddenField(default=serializers.CurrentUserDefault()) def get_status(self, obj): return ProviderRegistration.STATUS[obj.status] class Meta: model = models.ProviderRegistration fields = '__all__'
class FullNormalizedDataSerializer(serializers.ModelSerializer): # link to self url = fields.ShareIdentityField(view_name='api:normalizeddata-detail') tasks = serializers.PrimaryKeyRelatedField( many=True, read_only=False, queryset=models.CeleryTaskResult.objects.all()) source = serializers.HiddenField(default=serializers.CurrentUserDefault()) class Meta: model = models.NormalizedData fields = ('data', 'source', 'raw', 'tasks', 'url')
class AuthorSerializer(serializers.ModelSerializer): bio = relations.ResourceRelatedField( related_link_view_name='author-related', self_link_view_name='author-relationships', queryset=AuthorBio.objects, ) entries = relations.ResourceRelatedField( related_link_view_name='author-related', self_link_view_name='author-relationships', queryset=Entry.objects, many=True) first_entry = relations.SerializerMethodResourceRelatedField( related_link_view_name='author-related', self_link_view_name='author-relationships', model=Entry, ) comments = relations.HyperlinkedRelatedField( related_link_view_name='author-related', self_link_view_name='author-relationships', queryset=Comment.objects, many=True) secrets = serializers.HiddenField(default='Shhhh!') defaults = serializers.CharField( default='default', max_length=20, min_length=3, write_only=True, help_text='help for defaults', ) included_serializers = { 'bio': AuthorBioSerializer, 'type': AuthorTypeSerializer } related_serializers = { 'bio': 'example.serializers.AuthorBioSerializer', 'type': 'example.serializers.AuthorTypeSerializer', 'comments': 'example.serializers.CommentSerializer', 'entries': 'example.serializers.EntrySerializer', 'first_entry': 'example.serializers.EntrySerializer' } class Meta: model = Author fields = ('name', 'email', 'bio', 'entries', 'comments', 'first_entry', 'type', 'secrets', 'defaults') def get_first_entry(self, obj): return obj.entries.first()
class AuthorSerializer(serializers.ModelSerializer): bio = relations.ResourceRelatedField( related_link_view_name="author-related", self_link_view_name="author-relationships", queryset=AuthorBio.objects, ) entries = relations.ResourceRelatedField( related_link_view_name="author-related", self_link_view_name="author-relationships", queryset=Entry.objects, many=True, ) first_entry = relations.SerializerMethodResourceRelatedField( related_link_view_name="author-related", self_link_view_name="author-relationships", model=Entry, ) comments = relations.HyperlinkedRelatedField( related_link_view_name="author-related", self_link_view_name="author-relationships", queryset=Comment.objects, many=True, ) secrets = serializers.HiddenField(default="Shhhh!") defaults = serializers.CharField( default="default", max_length=20, min_length=3, write_only=True, help_text="help for defaults", ) initials = serializers.SerializerMethodField() included_serializers = {"bio": AuthorBioSerializer, "type": AuthorTypeSerializer} related_serializers = { "bio": "example.serializers.AuthorBioSerializer", "type": "example.serializers.AuthorTypeSerializer", "comments": "example.serializers.CommentSerializer", "entries": "example.serializers.EntrySerializer", "first_entry": "example.serializers.EntrySerializer", } class Meta: model = Author fields = ( "name", "email", "bio", "entries", "comments", "first_entry", "type", "secrets", "defaults", "initials", ) meta_fields = ("initials",) def get_first_entry(self, obj): return obj.entries.first() def get_initials(self, obj): return "".join([word[0] for word in obj.name.split(" ")])
class ProjectCreateSerializer(ProjectSerializer): slug = serializers.SlugField( default=serializers.CreateOnlyDefault(SlugDefault('title'))) owner = serializers.HiddenField(default=serializers.CurrentUserDefault())