This commit is contained in:
Kuroshini 2019-12-10 23:30:07 +03:00
parent ecef1a217a
commit 043fcb262b
2 changed files with 6 additions and 4 deletions

View File

@ -179,7 +179,9 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
def validate(self, attrs):
slugs = attrs.get('slugs', {})
if models.News.objects.filter(slugs__values__contains=list(slugs.values())).exists():
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
@ -262,7 +264,7 @@ class NewsFavoritesCreateSerializer(FavoritesCreateSerializer):
def validate(self, attrs):
"""Overridden validate method"""
# Check establishment object
news_qs = models.News.objects.filter(slug=self.slug)
news_qs = models.News.objects.filter(slugs__values__contains=[self.slug])
# Check establishment obj by slug from lookup_kwarg
if not news_qs.exists():

View File

@ -125,8 +125,8 @@ class BaseCreateDestroyMixinView(generics.CreateAPIView, generics.DestroyAPIView
lookup_field = 'slug'
def get_base_object(self):
if isinstance(self._model, News):
get_object_or_404(self._model, slugs__values__contains=[self.kwargs['slug']])
if 'slugs' in [f.name for f in self._model._meta.get_fields()]: # slugs instead of `slug`
return get_object_or_404(self._model, slugs__values__contains=[self.kwargs['slug']])
return get_object_or_404(self._model, slug=self.kwargs['slug'])
def es_update_base_object(self):