This commit is contained in:
marzban-dev
2025-12-08 11:44:34 +03:30
3 changed files with 30 additions and 6 deletions
@@ -0,0 +1,24 @@
# Generated by Django 5.1.2 on 2025-12-08 08:08
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('product', '0059_alter_maincategorymodel_parent'),
]
operations = [
migrations.AlterField(
model_name='maincategorymodel',
name='parent',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='maincategorys', to='product.unitcategorymodel', verbose_name='دسته\u200cبندی والد'),
),
migrations.AlterField(
model_name='subcategorymodel',
name='parent',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='subcategorys', to='product.maincategorymodel', verbose_name='دسته\u200cبندی والد'),
),
]
+3 -3
View File
@@ -54,7 +54,7 @@ class MainCategoryModel(models.Model):
max_length=160, verbose_name="توضیحات متا", help_text="توضیحات متا برای SEO", blank=True, null=True) max_length=160, verbose_name="توضیحات متا", help_text="توضیحات متا برای SEO", blank=True, null=True)
video = models.FileField(upload_to='category_videos/', video = models.FileField(upload_to='category_videos/',
blank=True, null=True, verbose_name='ویدیو') blank=True, null=True, verbose_name='ویدیو')
parent = models.ForeignKey(UnitCategoryModel, on_delete=models.CASCADE, parent = models.ForeignKey(UnitCategoryModel, on_delete=models.SET_NULL,
related_name='maincategorys', verbose_name='دسته‌بندی والد', null=True) related_name='maincategorys', verbose_name='دسته‌بندی والد', null=True)
class Meta: class Meta:
verbose_name = "دسته‌بندی اصلی" verbose_name = "دسته‌بندی اصلی"
@@ -84,8 +84,8 @@ class SubCategoryModel(models.Model):
max_length=60, verbose_name="عنوان متا", help_text="عنوان متا برای SEO", blank=True, null=True) max_length=60, verbose_name="عنوان متا", help_text="عنوان متا برای SEO", blank=True, null=True)
meta_description = models.TextField( meta_description = models.TextField(
max_length=160, verbose_name="توضیحات متا", help_text="توضیحات متا برای SEO", blank=True, null=True) max_length=160, verbose_name="توضیحات متا", help_text="توضیحات متا برای SEO", blank=True, null=True)
parent = models.ForeignKey(MainCategoryModel, on_delete=models.CASCADE, parent = models.ForeignKey(MainCategoryModel, on_delete=models.SET_NULL,
related_name='subcategorys', verbose_name='دسته‌بندی والد') related_name='subcategorys', verbose_name='دسته‌بندی والد', null=True)
class Meta: class Meta:
verbose_name = "زیر دسته‌بندی" verbose_name = "زیر دسته‌بندی"
+3 -3
View File
@@ -66,14 +66,14 @@ class AllCategories(APIView):
instance=categories, many=True, context={'request': request}) instance=categories, many=True, context={'request': request})
return Response(categories_ser.data, status=status.HTTP_200_OK) return Response(categories_ser.data, status=status.HTTP_200_OK)
class UnitCategorySerializerV2(serializers.ModelSerializer): class UnitCategorySerializerV2(serializers.ModelSerializer):
maincategorys = serializers.SerializerMethodField() subcategorys = serializers.SerializerMethodField()
class Meta: class Meta:
model = UnitCategoryModel model = UnitCategoryModel
fields = ['id', 'name', 'slug', 'icon', 'meta_title', fields = ['id', 'name', 'slug', 'icon', 'meta_title',
'meta_description', 'image', 'maincategorys'] 'meta_description', 'image', 'subcategorys']
def get_maincategorys(self, obj): def get_subcategorys(self, obj):
main_categories = obj.maincategorys.all() main_categories = obj.maincategorys.all()
return MainCategorySerializer(main_categories, many=True, context=self.context).data return MainCategorySerializer(main_categories, many=True, context=self.context).data