@robocop45
Only python

Как улучшить модель «кол-во товара на складе», так же расскажите как здесь построить бизнес логику лучше?

задача: создается карточка товара, админ устанавливает какие размеры есть в наличии

models
class Product(models.Model):
    ....
    category = models.ForeignKey('Category',
                                 related_name='products',
                                 on_delete=models.CASCADE)

    sizes = models.ManyToManyField('ClothingSize', through='Inventory')

class ClothingSize(models.Model):
    size_choices = (
        ('M', 'M'),
        ('S', 'S'),
        ('L', 'L'),
        ('XL', 'XL'),
    )
    size = models.CharField(max_length=2, choices=size_choices)

class Inventory(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    size = models.ForeignKey(ClothingSize, on_delete=models.CASCADE)
    quantity = models.IntegerField(default=0)


мне не особо нравится как здесь реализован Inventory(в наличии или нет). нечаянно админ может забыть установить наличие и все, логика будет уже не та. кроме этого все время нужно бегать между моделями

641e12a1c650e356720019.jpeg

admin
class ProductAdmin(admin.ModelAdmin):
    list_display = ['name', 'slug',  'price', 'available', 'created', 'uploaded']
    list_filter = ['available', 'created', 'uploaded', 'sizes']
    list_editable = ['price', 'available']
    prepopulated_fields = {'slug': ('name',)}
    inlines = [ProductPhotosInline,]


как это можно решить?
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы