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},
}
def validate(self, attrs):
slugs = attrs.get('slugs', {})
if models.News.objects.filter(
slugs__values__contains=list(slugs.values())
).exclude(id=attrs.get('id', 0)).exists():
raise serializers.ValidationError({'slugs': _('News with this slug already exists.')})
return attrs
def create(self, validated_data):
slugs = validated_data.get('slugs')
if slugs:
if models.News.objects.filter(
slugs__values__contains=list(slugs.values())
).exists():
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,