задача: создается карточка товара, админ устанавливает какие размеры есть в наличии
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(в наличии или нет). нечаянно админ
может забыть установить наличие и все, логика будет уже не та. кроме этого все время нужно бегать между моделями
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,]
как это можно решить?