from rest_framework.serializers import ModelSerializer, PrimaryKeyRelatedField from rest_framework_bulk import BulkSerializerMixin from .models import DocumentationLink, Member, OffTopicChannelName, Role, SnakeName class DocumentationLinkSerializer(ModelSerializer): class Meta: model = DocumentationLink fields = ('package', 'base_url', 'inventory_url') class OffTopicChannelNameSerializer(ModelSerializer): class Meta: model = OffTopicChannelName fields = ('name',) def to_representation(self, obj): return obj.name class SnakeNameSerializer(ModelSerializer): class Meta: model = SnakeName fields = ('name', 'scientific') class RoleSerializer(ModelSerializer): class Meta: model = Role fields = ('id', 'name', 'colour', 'permissions') class MemberSerializer(BulkSerializerMixin, ModelSerializer): roles = PrimaryKeyRelatedField(many=True, queryset=Role.objects.all()) class Meta: model = Member fields = ('id', 'avatar_hash', 'name', 'discriminator', 'roles') depth = 1