6 changed files with 167 additions and 3 deletions
-
44apps/article/serializers_dovodi.py
-
5apps/article/urls.py
-
36apps/article/views.py
-
26apps/library/serializers_admin.py
-
11apps/library/urls.py
-
48apps/library/views_admin.py
@ -0,0 +1,44 @@ |
|||||
|
from rest_framework import serializers |
||||
|
|
||||
|
from .models import ArticleCategory, ArticleCollection |
||||
|
from .serializers_admin import AbsoluteImageField |
||||
|
|
||||
|
|
||||
|
class DovodiArticleCategorySerializer(serializers.ModelSerializer): |
||||
|
slug = serializers.CharField(required=False, allow_blank=True) |
||||
|
|
||||
|
class Meta: |
||||
|
model = ArticleCategory |
||||
|
fields = ["id", "title", "slug", "status", "order"] |
||||
|
|
||||
|
|
||||
|
class DovodiArticleCollectionSerializer(serializers.ModelSerializer): |
||||
|
slug = serializers.CharField(required=False, allow_blank=True) |
||||
|
thumbnail = AbsoluteImageField(required=False, allow_null=True) |
||||
|
remove_thumbnail = serializers.BooleanField(write_only=True, required=False, default=False) |
||||
|
|
||||
|
class Meta: |
||||
|
model = ArticleCollection |
||||
|
fields = [ |
||||
|
"id", |
||||
|
"title", |
||||
|
"slug", |
||||
|
"summary", |
||||
|
"display_position", |
||||
|
"status", |
||||
|
"order", |
||||
|
"pin_top", |
||||
|
"thumbnail", |
||||
|
"remove_thumbnail", |
||||
|
] |
||||
|
|
||||
|
def create(self, validated_data): |
||||
|
validated_data.pop("remove_thumbnail", False) |
||||
|
return super().create(validated_data) |
||||
|
|
||||
|
def update(self, instance, validated_data): |
||||
|
remove_thumbnail = validated_data.pop("remove_thumbnail", False) |
||||
|
if remove_thumbnail and instance.thumbnail: |
||||
|
instance.thumbnail.delete(save=False) |
||||
|
instance.thumbnail = None |
||||
|
return super().update(instance, validated_data) |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue