如何为每种类型的服装创建不同的尺码表?

问题描述 投票:0回答:1

我正在 django 上开店,但不知道如何解决问题: 我得到了产品类(衣服类),我需要为不同类别衣服的尺寸创建另一个类,例如: 鞋子将获得 - 9US、10US、11US... 衬衫有 - XS、S、M、L... ETC。 我怎样才能创建这种类型的课程? 我的产品类别:

class Product(models.Model):
    class ModerationStatuses(models.TextChoices):
        DRAFT = 'DR', _('черновик')
        ON_MODERATION = 'MD', _('На модерации')
        APPROVED = 'AP', _('Одобрено')
        REJECTED = 'RJ', _('Отклонено')

    class ConditionStatuses(models.TextChoices):
        NEW = 'NEW', _('New')
        USED = 'USD', _('Used')
        VERY_WORN = 'VW', _('Very worn')
        NOT_SPECIFIED = 'NS', _('Not specified')

    title = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=6, decimal_places=2)
    quantity = models.IntegerField()
    city = ...
    style = models.ForeignKey(Style, related_name='category_products', on_delete=models.CASCADE, null=True, blank=True)
    category = models.ForeignKey(Category, related_name='style_products', on_delete=models.CASCADE, null=True, blank=True)
    address = models.CharField(max_length=250)
    description = models.TextField()
    brand = models.CharField(max_length=150)
    published = models.BooleanField(default=False, null=False)
    modification = models.OneToOneField('self', on_delete=models.CASCADE, null=True, blank=True,
                                        help_text='When editing an approved item a modification is created. This '
                                                  'modification is sent for moderation and, after approval, replaces '
                                                  'the original position.')
    is_modification = models.BooleanField(default=False)
    moderation_status = models.CharField(choices=ModerationStatuses.choices, default=ModerationStatuses.DRAFT,
                                         null=False, max_length= 2)
    condition = models.CharField(choices=ConditionStatuses.choices, default=ConditionStatuses.NEW, null=False, max_length=3)
    posted_at = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.title

我真的找不到任何信息来解决我的问题(((

python django django-models django-rest-framework
1个回答
0
投票

我让你的产品类变得更简单一点:

模型.py

class Product(models.Model):
    title    = models.CharField(max_length=100)
    price    = models.DecimalField(max_digits=6, decimal_places=2)
    quantity = models.IntegerField()
    
    def size(self):
       return Size.objects.filter(product=self)

class Size(models.Model):
    product    = models.ForeignKey(Product, on_delete=models.CASCADE)
    title      = models.CharField(max_length = 256)
    created_at = models.DateTimeField(auto_now_add=True)

管理员.py

class SizeInline(admin.TabularInline):
    model = Size

class ProductAdmin(admin.ModelAdmin):
    list_display = ('title', 'price')
    inlines = [SizeInline]

通过这种方式,您可以添加尺寸或任何其他您想要的功能。

© www.soinside.com 2019 - 2024. All rights reserved.