@ -39,18 +39,23 @@ class AbsoluteFileField(serializers.FileField):
class AdminArticleCategorySerializer ( serializers . ModelSerializer ) :
class AdminArticleCategorySerializer ( serializers . ModelSerializer ) :
slug = serializers . CharField ( required = False , allow_blank = True )
class Meta :
class Meta :
model = ArticleCategory
model = ArticleCategory
fields = [ " id " , " title " , " slug " , " status " , " order " ]
fields = [ " id " , " title " , " slug " , " status " , " order " ]
class AdminArticleCollectionSerializer ( serializers . ModelSerializer ) :
class AdminArticleCollectionSerializer ( serializers . ModelSerializer ) :
slug = serializers . CharField ( required = False , allow_blank = True )
class Meta :
class Meta :
model = ArticleCollection
model = ArticleCollection
fields = [ " id " , " title " , " slug " , " summary " , " display_position " , " status " , " order " ]
fields = [ " id " , " title " , " slug " , " summary " , " display_position " , " status " , " order " ]
class AdminArticleListSerializer ( serializers . ModelSerializer ) :
class AdminArticleListSerializer ( serializers . ModelSerializer ) :
slug = serializers . CharField ( required = False , allow_blank = True )
thumbnail = AbsoluteImageField ( required = False , allow_null = True )
thumbnail = AbsoluteImageField ( required = False , allow_null = True )
article_file = AbsoluteFileField ( required = False , allow_null = True )
article_file = AbsoluteFileField ( required = False , allow_null = True )
categories = AdminArticleCategorySerializer ( many = True , read_only = True )
categories = AdminArticleCategorySerializer ( many = True , read_only = True )
@ -77,6 +82,7 @@ class AdminArticleListSerializer(serializers.ModelSerializer):
class AdminArticleDetailSerializer ( serializers . ModelSerializer ) :
class AdminArticleDetailSerializer ( serializers . ModelSerializer ) :
slug = serializers . CharField ( required = False , allow_blank = True )
thumbnail = AbsoluteImageField ( required = False , allow_null = True )
thumbnail = AbsoluteImageField ( required = False , allow_null = True )
article_file = AbsoluteFileField ( required = False , allow_null = True )
article_file = AbsoluteFileField ( required = False , allow_null = True )
categories = serializers . PrimaryKeyRelatedField (
categories = serializers . PrimaryKeyRelatedField (
@ -129,6 +135,8 @@ class AdminArticleDetailSerializer(serializers.ModelSerializer):
def create ( self , validated_data ) :
def create ( self , validated_data ) :
validated_data . pop ( " remove_thumbnail " , False )
validated_data . pop ( " remove_thumbnail " , False )
validated_data . pop ( " remove_article_file " , False )
validated_data . pop ( " remove_article_file " , False )
if not validated_data . get ( " slug " ) :
validated_data . pop ( " slug " , None )
categories = validated_data . pop ( " categories " , [ ] )
categories = validated_data . pop ( " categories " , [ ] )
collections = validated_data . pop ( " collections " , [ ] )
collections = validated_data . pop ( " collections " , [ ] )
article = super ( ) . create ( validated_data )
article = super ( ) . create ( validated_data )
@ -141,6 +149,8 @@ class AdminArticleDetailSerializer(serializers.ModelSerializer):
def update ( self , instance , validated_data ) :
def update ( self , instance , validated_data ) :
remove_thumbnail = validated_data . pop ( " remove_thumbnail " , False )
remove_thumbnail = validated_data . pop ( " remove_thumbnail " , False )
remove_article_file = validated_data . pop ( " remove_article_file " , False )
remove_article_file = validated_data . pop ( " remove_article_file " , False )
if not validated_data . get ( " slug " ) :
validated_data . pop ( " slug " , None )
categories = validated_data . pop ( " categories " , None )
categories = validated_data . pop ( " categories " , None )
collections = validated_data . pop ( " collections " , None )
collections = validated_data . pop ( " collections " , None )