from rest_framework import serializers from journals.models import Thread, Journal class JournalSerializer(serializers.ModelSerializer): class Meta: model = Journal exclude = ('content_type', 'object_id') class ThreadSerializer(serializers.ModelSerializer): class Meta: model = Thread exclude = ('is_staff', 'recurse_step') class ThreadAdminSerializer(ThreadSerializer): count_children = serializers.SerializerMethodField() count_journals = serializers.SerializerMethodField() @staticmethod def get_count_children(self): return self.child_thread_count() @staticmethod def get_count_journals(self): return self.journals_count() class ThreadUserSerializer(serializers.ModelSerializer): journals = serializers.SerializerMethodField() class Meta: model = Thread fields = ('journals', 'key') @staticmethod def get_journals(self): return [JournalSerializer(i).data for i in self.journal_set.all()]