Задать вопрос
Ответы пользователя по тегу Django
  • Как в Django модель сразу добавить много записей из файла?

    Prognosticator
    @Prognosticator
    TODO: Здесь будут ворованные умные мысли, типа мои
    По началу всё было нормально, но сегодня клиент задаёт вопрос

    Тут улыбнулся. Изменение ПО и есть "нормально".

    Есть ли возможность всё залить через автомат?

    Формулировка задачи тоже веселая.

    И вот вопрос, как лучше всего сделать так, чтобы менеджер могла нажать на кнопку выбрать файл и оно без всяких там "зависонов" заполнило модель нужными значениями.

    Да и сам вопрос веселый.

    Абстрагируюсь и отвечу безотносительно ЯП и веб-фреймворка (т.е не буду писать код за вас - в режиме эремотерия).

    Думаю с парсингом файла вы и так разберетесь, напишите воркер (выполняемый в отдельном процессе, "против зависонов") запускаемый по сабмиту формы загрузки файла. В воркере обойдете файл построчно, сохраните извлеченные данные через пакетную (batch) вставку в используемую базу данных (сегодня 2500, завтра вдруг мильоны.). И не суть txt, csv, xlsx, заказчику кстати можно предложить и то и это вместе. Ну и как-то уведомите менеджера, она ведь будет ждать окончания загрузки, переживать будет. А вдруг загружаемый файл содержит форматирование которое ломает процесс парсинга файла? Нужно отловить ошибку, сохранить внятный текст ошибки и показать ее менеджеру, ведь она должна знать что нужно исправить файл и попробовать снова его загрузить? Ведь мы люди, не звери.
    Ну и тесты написать надо бы, вы же хотите спать более глубоким сном сознавая, что при изменении кода эта добавленная фича продолжает работать?

    Вам нужно сделать механизм обновления записей? Тогда в загружаемом файле должны быть уникальные идентификаторы. Вы же будете как-то определять какой "color" из файла соответствует "color"у в БД.
    Или нужно записи пересоздавать? В зависимости от этого и пишите логику.
    Ну а UI сами продумайте, где ссылку добавить, где форму вывести.
    Ответ написан
    Комментировать