slug genrator for sub category and category and parent filed for sub category serializer

This commit is contained in:
Parsa Nazer
2025-01-28 21:30:32 +03:30
parent 89c77d51ce
commit 4c4272e7cc
3 changed files with 15 additions and 3 deletions
+3
View File
@@ -13,6 +13,7 @@ class ProductModelAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm import_form_class = ImportForm
export_form_class = ExportForm export_form_class = ExportForm
readonly_fields = ('slug', )
compressed_fields = True compressed_fields = True
warn_unsaved_form = True warn_unsaved_form = True
@@ -31,6 +32,7 @@ class MainCategoryModelAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm import_form_class = ImportForm
export_form_class = ExportForm export_form_class = ExportForm
readonly_fields = ('slug', )
compressed_fields = True compressed_fields = True
warn_unsaved_form = True warn_unsaved_form = True
@@ -46,6 +48,7 @@ class SubCategoryModelAdmin(ModelAdmin, ImportExportModelAdmin):
import_form_class = ImportForm import_form_class = ImportForm
export_form_class = ExportForm export_form_class = ExportForm
readonly_fields = ('slug', )
compressed_fields = True compressed_fields = True
warn_unsaved_form = True warn_unsaved_form = True
+8 -2
View File
@@ -19,8 +19,10 @@ class MainCategoryModel(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
# def get_absolute_url(self): def save(self, *args, **kwargs):
# return reverse('category_detail', kwargs={'slug': self.slug}) if not self.slug:
self.slug = slugify(self.name, allow_unicode=True)
super().save(*args, **kwargs)
class SubCategoryModel(models.Model): class SubCategoryModel(models.Model):
@@ -39,6 +41,10 @@ class SubCategoryModel(models.Model):
def __str__(self): def __str__(self):
return self.name 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): class DollorModel(models.Model):
price = models.FloatField(null=True, blank=True, verbose_name='قیمت دلار') price = models.FloatField(null=True, blank=True, verbose_name='قیمت دلار')
+4 -1
View File
@@ -37,11 +37,14 @@ class CommentSerializer(serializers.ModelSerializer):
class SubCategorySerializer(serializers.ModelSerializer): class SubCategorySerializer(serializers.ModelSerializer):
product_count = serializers.SerializerMethodField() product_count = serializers.SerializerMethodField()
parent = serializers.SerializerMethodField()
class Meta: class Meta:
model = SubCategoryModel 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): def get_product_count(self, obj):
return obj.products.count() return obj.products.count()
def get_parent(self, obj):
return obj.parent.name
class MainCategorySerializer(serializers.ModelSerializer): class MainCategorySerializer(serializers.ModelSerializer):