diff --git a/apps/transfer/mixins.py b/apps/transfer/mixins.py index 00492acf..fb85725e 100644 --- a/apps/transfer/mixins.py +++ b/apps/transfer/mixins.py @@ -4,6 +4,7 @@ from rest_framework import serializers from tag import models as tag_models from django.conf import settings from product.models import ProductType, ProductSubType +from django.utils.text import slugify class SecondDbManager(models.Manager): @@ -90,3 +91,6 @@ class TransferSerializerMixin(serializers.ModelSerializer): index_name__icontains=product_sub_type) if qs.exists(): return qs.first() + + def get_slug(self, name, old_id): + return slugify(f'{name}-{old_id}') \ No newline at end of file diff --git a/apps/transfer/serializers/product.py b/apps/transfer/serializers/product.py index 873c0746..5bd5f450 100644 --- a/apps/transfer/serializers/product.py +++ b/apps/transfer/serializers/product.py @@ -433,9 +433,6 @@ class ProductSerializer(TransferSerializerMixin): return True return False - def get_slug(self, name, old_id): - return slugify(f'{name}-{old_id}') - class PlateSerializer(TransferSerializerMixin): @@ -454,14 +451,17 @@ class PlateSerializer(TransferSerializerMixin): ) def validate(self, attrs): + old_id = attrs.pop('id') + name = attrs.get('name') product_type = self.get_product_type(self.PRODUCT_TYPE_INDEX_NAME) - attrs['old_id'] = attrs.pop('id') + attrs['old_id'] = old_id attrs['vintage'] = self.get_vintage_year(attrs.pop('vintage')) attrs['product_type'] = product_type attrs['state'] = self.Meta.model.PUBLISHED attrs['subtype'] = self.get_product_sub_type(product_type, self.PRODUCT_SUB_TYPE_INDEX_NAME) + attrs['slug'] = self.get_slug(name, old_id) return attrs def create(self, validated_data):