Я новый разработчик.
У меня есть форма с несколькими шагами, и я хочу разрешить пользователям загружать максимум 2 (например, DROPZONE_MAX_FILE_SIZE = 3, PLOADED_PATH = os.path.join (base, 'doc Form')))
затем в другом разделе (шаге) формы, которую я хочу разрешить пользователю загружать больше файлов с другой конфигурацией (например, DROPZONE_MAX_FILE_SIZE = 20, PLOADED_PATH = os.path.join (base, 'med'))
Вещи, которые я пробовал:
1 - попытался вставить dropzone в одни и те же формы дважды в двух разных Div и предоставил настраиваемые параметры для каждого, включая разные маршруты URL, но не работал (работает только при удалении одного из них). Я всегда получаю ошибку SECOND_PATH_URL_OR_FUNCTION is not defined
2 - после прочтения этого ответа Несколько Dropzone на одной странице Я заменил div на форму и добавил пользовательские опции, где у каждой dropzone есть своя функция в колбе
Если я удалил DROPZONE_UPLOAD_ACTION='handle_upload'
из конфигурации приложения и добавил в качестве пользовательской опции, я получаю эту ошибку на консоли chrome No URL provided.
Когда я добавляю один из URL-адресов, он единственный, у которого есть шанс работать, потому что я получаю сообщение об ошибке для второго handle_upload2 is not defined
, где handle_upload2 - просто дубликат исходной функции, которая называется handle_upload, и я добавил ее URL-адрес. в настройках конфигурации.
Кажется, что custom_options не перекрывает детали app.config
Я близок, но не знаю, как добавить оба URL на одной странице, чтобы я мог запустить один скрипт функции onclick
и отправить все данные в Ajax, как если бы они были одной формой.
Параметры текущей настройки файла колбы:
UPLOADED_PATH=os.path.join(basedir, 'uploads'),
# Flask-Dropzone config:
DROPZONE_ALLOWED_FILE_TYPE='image',
DROPZONE_MAX_FILE_SIZE=3,
DROPZONE_MAX_FILES=30,
DROPZONE_IN_FORM=True,
DROPZONE_UPLOAD_ON_CLICK=True,
DROPZONE_UPLOAD_ACTION='handle_upload', # URL or endpoint
DROPZONE_UPLOAD_BTN_ID='uploadID',
пользовательских опций для Drop Zone 1:
{{ dropzone.config(custom_init='dz = this;document.getElementById("uploadID").addEventListener("click", function handler(e) {dz.processQueue();});',
custom_options='autoProcessQueue: false, addRemoveLinks: true, maxFiles: 2,DROPZONE_UPLOAD_ACTION:handle_upload,') }}
и для зоны падения 2:
{{ dropzone.config(custom_init='dz2 = this;document.getElementById("uploadID").addEventListener("click", function handler(e) {dz2.processQueue();});',
custom_options='autoProcessQueue: false, addRemoveLinks: true, maxFiles: 2,DROPZONE_UPLOAD_ACTION:handle_upload2,') }}