По вашему мнению, у вас есть оба
gelinFoto = request.files['gelinFoto']
damatFoto = request.files['damatFoto']
Вот почему вы получаете эту ошибку
Если файл не предоставлен, то, например, нет request.files['gelinFoto']
, и Python пытается его найти, но это не может привести к тому, что нет ключа с именем gelinFoto
!
Самый простой трюк - определить тему так:
gelinFoto = request.files['gelinFoto'] if request.files.get('gelinFoto') else None
damatFoto = request.files['damatFoto'] if request.files.get('damatFoto') else None
Таким образом, он использует встроенное условие для получения ключей, если они не предоставлены, тогда он устанавливает значение None
Позже в вашем коде я вижу, что вы сделали это снова,
if gelinFoto or damatFoto:
# ... Your other coders
gfilename = secure_filename(gelinFoto.filename)
dfilename = secure_filename(damatFoto.filename)
gelinFoto.save(os.path.join(yol, gfilename))
damatFoto.save(os.path.join(yol, dfilename))
Это неправильно, вы проверяете это с помощью or
, а затем вы, кроме обоих, не должны быть None
!!
Лучше сделать операцию для каждого отдельно, например:
if gelinFoto:
yol = app.config['UPLOAD_FOLDER'] + whuser
yol = yol + '/profil'
gfilename = secure_filename(gelinFoto.filename)
gelinFoto.save(os.path.join(yol, gfilename)
if damatFoto:
yol = app.config['UPLOAD_FOLDER'] + whuser
yol = yol + '/profil'
dfilename = secure_filename(damatFoto.filename)
damatFoto.save(os.path.join(yol, dfilename)
# I'm not sure if there is a better way to do this but about kisi line This is the best that came up to me ( ofcourse there are better ways )
if gelinFoto and damatFoto:
kisi = bilgi(gelinFoto = gfilename, damatFoto = dfilename)
elif gelinFoto:
kisi = bilgi(gelinFoto = gfilename)
elif damatFoto:
kisi = bilgi(damatFoto = dfilename)