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