categorylanri import qilish qoshildi
This commit is contained in:
2
core/apps/api/models/__init__.py
Normal file
2
core/apps/api/models/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
from .category import * # noqa
|
||||
from .products import * # noqa
|
||||
67
core/apps/api/models/category.py
Normal file
67
core/apps/api/models/category.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_core.models import AbstractBaseModel
|
||||
from model_bakery import baker
|
||||
|
||||
|
||||
class FilialModel(AbstractBaseModel):
|
||||
name = models.CharField(verbose_name=_("name"), max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@classmethod
|
||||
def _baker(cls):
|
||||
return baker.make(cls)
|
||||
|
||||
class Meta:
|
||||
db_table = "filial"
|
||||
verbose_name = _("FilialModel")
|
||||
verbose_name_plural = _("FilialModels")
|
||||
|
||||
|
||||
class CategoryModel(AbstractBaseModel):
|
||||
filial = models.ForeignKey(
|
||||
FilialModel,
|
||||
verbose_name=_("filial"),
|
||||
related_name="categories",
|
||||
on_delete=models.CASCADE,
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
name = models.CharField(verbose_name=_("name"), max_length=255)
|
||||
image = models.ImageField(verbose_name=_("image"), upload_to="categories/", null=True, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@classmethod
|
||||
def _baker(cls):
|
||||
return baker.make(cls)
|
||||
|
||||
class Meta:
|
||||
db_table = "category"
|
||||
verbose_name = _("CategoryModel")
|
||||
verbose_name_plural = _("CategoryModels")
|
||||
|
||||
|
||||
class SubcategoryModel(AbstractBaseModel):
|
||||
category = models.ForeignKey(
|
||||
CategoryModel,
|
||||
verbose_name=_("category"),
|
||||
related_name="subcategories",
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
name = models.CharField(verbose_name=_("name"), max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@classmethod
|
||||
def _baker(cls):
|
||||
return baker.make(cls)
|
||||
|
||||
class Meta:
|
||||
db_table = "subcategory"
|
||||
verbose_name = _("SubcategoryModel")
|
||||
verbose_name_plural = _("SubcategoryModels")
|
||||
55
core/apps/api/models/products.py
Normal file
55
core/apps/api/models/products.py
Normal file
@@ -0,0 +1,55 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_core.models import AbstractBaseModel
|
||||
from model_bakery import baker
|
||||
|
||||
|
||||
from core.apps.api.models.category import SubcategoryModel
|
||||
|
||||
|
||||
class ProductsModel(AbstractBaseModel):
|
||||
name = models.CharField(verbose_name=_("name"), max_length=255)
|
||||
price = models.DecimalField(verbose_name=_("price"), max_digits=10, decimal_places=2, default=0.0)
|
||||
image = models.ImageField(verbose_name=_("image"), upload_to="products/", null=True, blank=True)
|
||||
subcategory = models.ForeignKey(
|
||||
SubcategoryModel,
|
||||
verbose_name=_("subcategory"),
|
||||
related_name="products",
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@classmethod
|
||||
def _baker(cls):
|
||||
return baker.make(cls)
|
||||
|
||||
class Meta:
|
||||
db_table = "products"
|
||||
verbose_name = _("ProductsModel")
|
||||
verbose_name_plural = _("ProductsModels")
|
||||
|
||||
|
||||
class SubProductModel(AbstractBaseModel):
|
||||
product = models.ForeignKey(
|
||||
ProductsModel,
|
||||
verbose_name=_("product"),
|
||||
related_name="subproducts",
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
name = models.CharField(verbose_name=_("name"), max_length=255)
|
||||
price = models.DecimalField(verbose_name=_("price"), max_digits=10, decimal_places=2, default=0.0)
|
||||
image = models.ImageField(verbose_name=_("image"), upload_to="subproducts/", null=True, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.product.name} - {self.name}"
|
||||
|
||||
@classmethod
|
||||
def _baker(cls):
|
||||
return baker.make(cls)
|
||||
|
||||
class Meta:
|
||||
db_table = "subproduct"
|
||||
verbose_name = _("SubProductModel")
|
||||
verbose_name_plural = _("SubProductModels")
|
||||
Reference in New Issue
Block a user