Как в Django для одного поля сделать несколько значений?
Если используется PostgreSQL, то хорошо подойдёт использование JSONField. Если другая СУБД, то придётся использовать EAV.
Оба способа попахивают
1. Попахивает именование - ну можно ж нормально назвать color_bottom, color_top
2. Попахивает оверинжинирингом
Если товары однородны и у них и правда только колор1 и колор2, то лучше 1
Если у вас неоднородные товары, то нужен json/eav