Skip to content
Snippets Groups Projects
serializers.py 1.39 KiB
Newer Older
  • Learn to ignore specific revisions
  • from rest_framework import serializers
    
    from common.serializers import CurrentUserProfileDefault
    
    from . import models
    
    
    
    Bodor Máté's avatar
    Bodor Máté committed
    class StaffEventSerializer(serializers.ModelSerializer):
    
    Bodor Máté's avatar
    Bodor Máté committed
        created_by_name = serializers.SerializerMethodField()
    
        visitor_number = serializers.SerializerMethodField()
    
            fields = '__all__'
            read_only_fields = ('created_at', 'update_at', 'created_by')
    
    
        def get_created_by_name(self, obj):
    
    Bodor Máté's avatar
    Bodor Máté committed
            return obj.created_by.full_name
    
    
        def get_visitor_number(self, obj):
            return obj.visitors.all().count()
    
    
    Bodor Máté's avatar
    Bodor Máté committed
    class StudentEventSerializer(serializers.ModelSerializer):
        class Meta:
            model = models.Event
            fields = ('name', 'date', 'description', )
            read_only_fields = ('name', 'date', 'description', )
    
    
    
    class NoteSerializer(serializers.ModelSerializer):
        created_by = serializers.HiddenField(default=CurrentUserProfileDefault())
    
    Bodor Máté's avatar
    Bodor Máté committed
        created_by_name = serializers.SerializerMethodField()
    
    
        class Meta:
            model = models.Note
            fields = '__all__'
            read_only_fields = ('created_at', 'update_at', 'created_by')
    
        def get_created_by_name(self, obj):
    
    Bodor Máté's avatar
    Bodor Máté committed
            return obj.created_by.full_name
    
    
        def validate(self, data):
            if data['profile'] is None and data['event'] is None:
                raise serializers.ValidationError('You have to add profile or event')
            return data