class BookBaseInfoSerializer(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) front_image = serializers.SerializerMethodField() book_image = serializers.SerializerMethodField() need_auth = serializers.SerializerMethodField() def get_front_image(self, book): if book.front_image: return "{0}/{1}".format(MEDIA_URL_PREFIX, book.front_image) def get_book_image(self, book): if book.book_image: return "{0}/{1}".format(MEDIA_URL_PREFIX, book.book_image) def get_need_auth(self, article): if article.browse_password_encrypt: return True else: return False class Meta: model = BookInfo fields = ('id', 'title', 'en_title', 'desc', 'en_desc', 'category', 'tags', 'click_num', 'like_num', 'comment_num', 'post_type', 'is_recommend', 'is_hot', 'is_banner', 'is_commentable', 'index', 'need_auth', 'front_image', 'front_image_type', 'is_reading', 'read_precentage', 'add_time', 'douban_id', 'douban_type', 'douban_infos', 'book_isbn10', 'book_isbn13', 'book_name', 'book_author', 'book_publisher', 'book_pages', 'book_url', 'book_image', 'book_rating', 'book_tags')
class BookDetailInfoSerializer(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) license = LicenseSerializer() details = BookDetailSerializer(many=True) book_note = serializers.SerializerMethodField() browse_auth = serializers.CharField(required=False, max_length=100, write_only=True) def get_book_note(self, serializer): book_notes_json = [] book_notes = BookNoteInfo.objects.filter(book_id=serializer.id, note_type=1) if book_notes: book_notes_json = BookNoteBaseInfoSerializer( book_notes, many=True, context={ 'request': self.context['request'] }).data return book_notes_json class Meta: model = BookInfo exclude = ('browse_password', )
class BookNoteBaseInfoSerializer2(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) browse_auth = serializers.CharField(required=False, max_length=100, write_only=True) class Meta: model = BookNoteInfo exclude = ('browse_password',)
class ArticleDetailInfoSerializer(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) license = LicenseSerializer() details = ArticleDetailSerializer(many=True) browse_auth = serializers.CharField(required=False, max_length=100, write_only=True) class Meta: model = ArticleInfo exclude = ('browse_password', )
class AlbumDetailInfoSerializer(serializers.ModelSerializer): category = SingleLevelCategorySerializer() pictures = PictureSerializer(many=True) tags = TagSerializer(many=True) browse_auth = serializers.CharField(required=False, max_length=100, write_only=True) class Meta: model = AlbumInfo exclude = ('browse_password', 'browse_password_encrypt')
class BookNoteDetialInfoSerializer(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) book = BookBaseInfoSerializer() license = LicenseSerializer() details = BookNoteDetialSerializer(many=True) browse_auth = serializers.CharField(required=False, max_length=100, write_only=True) class Meta: model = BookNoteInfo exclude = ('browse_password', 'browse_password_encrypt')
class BookBaseInfoSerializer(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) class Meta: model = BookInfo fields = ('id', 'title', 'desc', 'category', 'tags', 'post_type', 'is_recommend', 'is_hot', 'is_banner', 'browse_password_encrypt', 'front_image', 'is_reading', 'read_precentage', 'add_time', 'douban_id', 'douban_type', 'douban_infos', 'book_isbn10', 'book_isbn13', 'book_name', 'book_author', 'book_publisher', 'book_pages', 'book_url', 'book_image', 'book_rating', 'book_tags')
class ArticleBaseInfoSerializer(serializers.ModelSerializer): tags = TagSerializer(many=True) front_image = serializers.SerializerMethodField() def get_front_image(self, article): return "{0}/{1}".format(MEDIA_URL_PREFIX, article.front_image) class Meta: model = ArticleInfo fields = ('id', 'title', 'desc', 'author', 'tags', 'click_num', 'like_num', 'comment_num', 'post_type', 'front_image', 'is_recommend', 'is_hot', 'is_banner', 'browse_password_encrypt', 'front_image_type', 'add_time')
class BookNoteBaseInfoSerializer1(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) sub_note = BookNoteBaseInfoSerializer2(many=True) browse_auth = serializers.CharField(required=False, max_length=100, write_only=True) front_image = serializers.SerializerMethodField() def get_front_image(self, book_note): if book_note.front_image: return "{0}/{1}".format(MEDIA_URL_PREFIX, book_note.front_image) class Meta: model = BookNoteInfo exclude = ('browse_password',)
class BookNoteBaseInfoSerializer2(serializers.ModelSerializer): category = SingleLevelCategorySerializer() tags = TagSerializer(many=True) front_image = serializers.SerializerMethodField() need_auth = serializers.SerializerMethodField() def get_front_image(self, book_note): if book_note.front_image: return "{0}/{1}".format(MEDIA_URL_PREFIX, book_note.front_image) def get_need_auth(self, article): if article.browse_password_encrypt: return True else: return False class Meta: model = BookNoteInfo exclude = ('browse_password', 'browse_password_encrypt')
class PostBaseInfoSerializer(serializers.ModelSerializer): tags = TagSerializer(many=True) front_image = serializers.SerializerMethodField() need_auth = serializers.SerializerMethodField() def get_front_image(self, post): if post.front_image: return "{0}/{1}".format(MEDIA_URL_PREFIX, post.front_image) def get_need_auth(self, post): if post.browse_password_encrypt: return True else: return False class Meta: model = PostInfo fields = ('id', 'title', 'en_title', 'desc', 'en_desc', 'author', 'tags', 'click_num', 'like_num', 'comment_num', 'post_type', 'front_image', 'is_recommend', 'is_hot', 'is_banner', 'is_commentable', 'need_auth', 'front_image_type', 'index', 'add_time')