функция внутри bulk_create - понимание списка - PullRequest
0 голосов
/ 23 апреля 2020

Я делаю bulk_create в Django из загруженного csv файла. Я использую ignore_conflicts=True, чтобы игнорировать дубликаты, но, похоже, это не работает, я бы хотел проверить duplicates, основываясь только на одном столбце в данных csv. Позвольте мне объяснить;

Мои данные выглядят так:

name address number
aaa  bbbb    090

Я хотел бы проверить, существует ли такой же number в базе данных, и если да, не вставлять данные из bulk_create там. Я использую код ниже, но он выдает syntax error

....some code...
all_db_data = OnlineDB.objects.all()

OnlineDB.objects.bulk_create([OnlineDB(
            number=row[2],
            name=row[0],
            address=row[1]
        ) ignore_dups(row, all_db_data ) for row in reader], ignore_conflicts=True) # reader are data from csv.reader()


def ignore_dups(row, all_db_data):
    match = all_db_data.filter(number=row[2])
    if match.Count() > 0:
        return
    return row

...