complete base of product and categories

This commit is contained in:
AmirHossein Shirazi
2024-12-12 22:53:05 +03:30
parent 907a115e3e
commit 40945fdaa8
4 changed files with 112 additions and 1 deletions
+52
View File
@@ -1,6 +1,58 @@
from django.db import models
from django.utils.text import slugify
from django.contrib.auth.models import User
from django.urls import reverse
class CategoryModel(models.Model):
name = models.CharField(max_length=50, verbose_name='نام دسته‌بندی')
slug = models.SlugField(
max_length=50,
unique=True,
help_text="اسم دسته را برای مسیر به انگلیسی و بدون فاصله وارد کنید"
)
parent = models.ForeignKey(
'self',
on_delete=models.CASCADE,
related_name='children',
null=True,
blank=True,
verbose_name='دسته‌بندی والد'
)
icon = models.CharField(max_length=100, verbose_name='آیکون دسته‌بندی', blank=True, null=True)
meta_title = models.CharField(
max_length=60,
verbose_name="عنوان متا",
help_text="عنوان متا برای SEO",
blank=True,
null=True
)
meta_description = models.TextField(
max_length=160,
verbose_name="توضیحات متا",
help_text="توضیحات متا برای SEO",
blank=True,
null=True
)
class Meta:
verbose_name = "دسته‌بندی"
verbose_name_plural = "دسته‌بندی‌ها"
ordering = ['parent__id', 'id'] # Optional: to order by hierarchy
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('category_detail', kwargs={'slug': self.slug})
def get_breadcrumb(self):
breadcrumb = []
category = self
while category:
breadcrumb.append(category)
category = category.parent
return breadcrumb[::-1]
class ProductModel(models.Model):
name = models.CharField(max_length=255)
description = models.TextField()