我有一个 Django 应用程序,我在其中维护网上商店的产品。由于许多产品有多种变体并且在 Excel 中工作并不是最佳选择,我认为 Python 可以帮助我并使工作更轻松。但是,为了导入我的商店系统,我需要一个 CSV 文件,这就是我的问题。
我有一个包含五个字段的模型,其中两个是多个字段(django-multiselectfield)。
SIZES = (('16', 'Size 16'),
('17', 'Size 17'),
('18', 'Size 18'),
('19', 'Size 19'),
('20', 'Size 20'))
COLORS = (('white', 'White'),
('black', 'Black'),
('blue', 'Blue'),
('red', 'Red'),
('yellow', 'Yellow'))
class Items(models.Model):
name = models.CharField(_('Name'), max_length=254, null=True, blank=True, default='',)
sku = models.CharField(_('SKU'), max_length=254, null=True, blank=True, default='',)
size = MultiSelectField(_('Size'), choices=SIZES)
color = MultiSelectField(_('Color'), choices=COLORS)
price = models.DecimalField(_('Price'), max_digits=7, decimal_places=2)
我创建了两个产品来展示我的需求
例如,在我的 CSV 文件中,我需要为每个尺寸和颜色创建一个新行,以便在 webshop 软件中正确创建变化。
所以我的 CSV 必须看起来像这样:
"type","sku","attribute 1 name","attribute 1 value","attribute 2 name","attribute 2 value"
"variable","abc01921","size","16","color","white,black,blue"
"variation","abc01921_white_16","size","16","color","white"
"variation","abc01921_black_16","size","16","color","black"
"variation","abc01921_blue_16","size","16","color","blue"
"variable","abc01831","size","16,17","color","black,blue"
"variation","abc01831_black_16","size","16","color","black"
"variation","abc01831_blue_16","size","16","color","blue"
"variation","abc01831_black_17","size","17","color","black"
"variation","abc01831_blue_17","size","17","color","blue"
我如何才能最好地成功实施这一点?如何检查它是变量还是变体,并使用此信息将 CSV 行相应地写入文件?