Django objects.filter возвращает пустой массив, даже если он вернул объект ранее при том же запросе
В настоящее время я работаю над проектом Excel to DB, в котором я помещаю 3000 продуктов в мою SQLite DB. Некоторые из продуктов дублируются или уже существуют в БД. Поэтому я просматриваю лист Excel и проверяю с помощью
# Check if "Produkt" already Exists. If it dose, return the id of the "Produkt"
produkt = Produkt.objects.filter(**{"name": produktName})
p_serializer = ProduktSerializer(produkt, many=True)
с:
if len(p_serializer.data) == 0:
Я проверяю, не существует ли уже данный продукт.
Моя основная проблема сейчас в том, что он может обнаружить первый товар, но пропустить следующий (например, если один и тот же товар появляется 3 раза подряд) и просто вернуть [].
я думал об условиях гонки, но это не должно быть возможным, потому что я единственный, кто обращается к приложению прямо сейчас
Я попробовал сделать таймаут в цикле, но это не помогло. Я также попытался сказать в операторе if:
if len(p_serializer.data) == 0 and lastItem != produktName:
тоже не сработало
РЕДАКТИРОВАТЬ: вот что я получаю, когда печатаю запрос для одного из продуктов: <QuerySet [<Produkt: Produkt object (40)>, <Produkt: Produkt object (279)>, <Produkt: Produkt object (385)>, <Produkt: Produkt object (614)>]> <QuerySet []> 2362 <QuerySet []> 2363 <QuerySet []> 2364
первый находит много одинаковых товаров, после чего я получаю только пустые наборы запросов. (цифры - это идентификаторы вновь созданных товаров)