Такие свойства сохраняю с помощью eav-django. Поиск делаю с помощью Sphinx - загоняю в мультиаттрибут все значения свойств для каждого товара и дальше запросом к sphinx можно вытянуть список id товаров, подходящих под фильтры. Плюс такого подхода еще в том, что можно совместить отбор по фильтрам и полнотекстовый поиск.