diff --git a/backend/product/admin.py b/backend/product/admin.py index d38a2e3..5514d08 100644 --- a/backend/product/admin.py +++ b/backend/product/admin.py @@ -13,6 +13,7 @@ class ProductModelAdmin(ModelAdmin, ImportExportModelAdmin): import_form_class = ImportForm export_form_class = ExportForm + readonly_fields = ('slug', ) compressed_fields = True warn_unsaved_form = True @@ -31,6 +32,7 @@ class MainCategoryModelAdmin(ModelAdmin, ImportExportModelAdmin): import_form_class = ImportForm export_form_class = ExportForm + readonly_fields = ('slug', ) compressed_fields = True warn_unsaved_form = True @@ -46,6 +48,7 @@ class SubCategoryModelAdmin(ModelAdmin, ImportExportModelAdmin): import_form_class = ImportForm export_form_class = ExportForm + readonly_fields = ('slug', ) compressed_fields = True warn_unsaved_form = True diff --git a/backend/product/models.py b/backend/product/models.py index 783db3a..cabc85f 100644 --- a/backend/product/models.py +++ b/backend/product/models.py @@ -19,8 +19,10 @@ class MainCategoryModel(models.Model): def __str__(self): return self.name - # def get_absolute_url(self): - # return reverse('category_detail', kwargs={'slug': self.slug}) + def save(self, *args, **kwargs): + if not self.slug: + self.slug = slugify(self.name, allow_unicode=True) + super().save(*args, **kwargs) class SubCategoryModel(models.Model): @@ -39,6 +41,10 @@ class SubCategoryModel(models.Model): def __str__(self): return self.name + def save(self, *args, **kwargs): + if not self.slug: + self.slug = slugify(self.name, allow_unicode=True) + super().save(*args, **kwargs) class DollorModel(models.Model): price = models.FloatField(null=True, blank=True, verbose_name='قیمت دلار') diff --git a/backend/product/serializers.py b/backend/product/serializers.py index c331bb7..2fde664 100644 --- a/backend/product/serializers.py +++ b/backend/product/serializers.py @@ -37,11 +37,14 @@ class CommentSerializer(serializers.ModelSerializer): class SubCategorySerializer(serializers.ModelSerializer): product_count = serializers.SerializerMethodField() + parent = serializers.SerializerMethodField() class Meta: model = SubCategoryModel - fields = ['id', 'name', 'slug','icon', 'meta_title', 'meta_description', 'product_count', 'show'] + fields = ['id', 'name', 'slug','icon', 'meta_title', 'meta_description', 'product_count', 'show', 'parent'] def get_product_count(self, obj): return obj.products.count() + def get_parent(self, obj): + return obj.parent.name class MainCategorySerializer(serializers.ModelSerializer):