Django Запрос ввода от пользователя

У меня возникла проблема с процессом стека Django, и мне интересно, есть ли способ запросить ввод данных пользователем.

Для начала пользователь загружает данные пробы (кислород, ХЛ, питательные вещества и т.д.), которые обычно поступают из файла excel. Пользователь нажимает на кнопку, указывающую, какой тип пробы загружается на веб-страницу, и получает диалог для выбора файла для загрузки. Веб-страница передает файл в python через VueJS/Django, где python передает файл соответствующему парсеру для чтения конкретного типа образца. Файл обрабатывается, и данные образца записываются в базу данных.

Ошибки (т.е. ID образца находится вне ожидаемого диапазона ID, потому что он был неправильно введен при взятии образца) передаются обратно на веб-страницу, а также записываются в базу данных, чтобы сообщить пользователю, когда что-то произошло:

(Например, "Не существует бутылки для образца с ID 495619, ожидаемый диапазон 495169 - 495176" или "356 - необоснованная соленость, проверьте данные для образца 495169"). Возможно, есть пятьдесят образцов без идентификаторов бутылок, потому что нужный файл бутылки не был загружен до данных образца. В общем, у вас есть одна большая 10-литровая бутылка с водой, глубина океана (давление) и идентификатор бутылки, где бутылка была закрыта, находятся в файле бутылки, а образцы помещаются в разные пробирки с уникальным идентификатором этой бутылки, и пробирки проходят различные машины и тесты для получения файлов образцов.

Моя проблема возникает, когда пользователь выбирает файл, содержащий данные, которые уже были загружены. Если имя файла совпадает с именем существующего файла, из которого были загружены данные, я очищаю данные, связанные с этим файлом, и перезагружаю базу данных с новыми данными, иногда данные распределены по нескольким файлам, которые уже были загружены, и загрузчик объединяет все файлы, включая некоторые, которые не были загружены, вместе.

Протокол загрузки данных заключается в том, что загружающий добавляет/прикрепляет свои инициалы к копии файла, если были сделаны исправления, и не изменяет оригинальный файл; цепочка хранения данных. Иногда файл может быть изменен несколькими людьми, и каждый человек создаст свою копию и добавит/припишет свои инициалы, чтобы люди знали, кто прикасался к данным. (Я не устанавливаю правила, я просто работаю с тем, что у меня есть)

Итак, мы возвращаемся к парсеру, и он обнаруживает, что данные уже существуют (для данного ID образца), но имя файла другое. В этот момент я хочу спросить пользователя, хотите ли вы перезагрузить все данные, загруженные из другого файла, обновить существующие данные новым файлом или игнорировать существующие данные и добавить только новые данные.

Есть ли способ для Django сделать запрос к веб-странице, чтобы спросить пользователя, как он должен обрабатывать эти данные без необходимости прерывать текущий запрос? - когда веб-страница ожидает ответа от сервера о том, что данные были загружены и какие ошибки с данными могли быть найдены -

Мои текущие мысли таковы:

Перед каждой загрузкой файла спрашивайте пользователя, как следует обрабатывать столкновение, если оно произойдет

Or

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

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

Вернуться на верх