fix multislug news update

This commit is contained in:
Kuroshini 2019-12-11 12:14:23 +03:00
parent 043fcb262b
commit 907a9365e1

View File

@ -177,13 +177,23 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
'backoffice_title': {'allow_null': False}, 'backoffice_title': {'allow_null': False},
} }
def validate(self, attrs): def create(self, validated_data):
slugs = attrs.get('slugs', {}) slugs = validated_data.get('slugs')
if models.News.objects.filter( if slugs:
slugs__values__contains=list(slugs.values()) if models.News.objects.filter(
).exclude(id=attrs.get('id', 0)).exists(): slugs__values__contains=list(slugs.values())
raise serializers.ValidationError({'slugs': _('News with this slug already exists.')}) ).exists():
return attrs raise serializers.ValidationError({'slugs': _('News with this slug already exists.')})
return super().create(validated_data)
def update(self, instance, validated_data):
slugs = validated_data.get('slugs')
if slugs:
if models.News.objects.filter(
slugs__values__contains=list(slugs.values())
).exclude(pk=instance.pk).exists():
raise serializers.ValidationError({'slugs': _('News with this slug already exists.')})
return super().update(instance, validated_data)
class NewsBackOfficeDetailSerializer(NewsBackOfficeBaseSerializer, class NewsBackOfficeDetailSerializer(NewsBackOfficeBaseSerializer,