Про парсинг csv: смущает дергание вручную replace - может, вам нужно указать quotechar, или написать свой Dialect?
По поводу create и update - сейчас в джанге есть чудесный
update_or_create.
Про ваше решение - обязательно заверните all_item в простейший set, чтобы вхождение искалось моментально, а не линейно от числа товаров! В вашем случае это просто ValuesQuerySet -> list!