Проблемы с проверкой формы с помощью цикла для PythonPython

Программы на Python
Ответить
Anonymous
 Проблемы с проверкой формы с помощью цикла для Python

Сообщение Anonymous »

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

Код: Выделить всё

listaCondicion = {
"nombre" : {"min":3},
"apellido" : {"min":4},
"cedula" : {"min":7, "query":consulta.verficarCedula, "param":[f"{tipoCedula.value}-{cedula.value}",], "msj":"Esta cedula ya esta ligada a un usuario"},
"numTelefono" : {"min":7, "query":consulta.verficarNumero, "param":[f"{codigoTelefono.value}-{numTelefono.value}",], "msj":"Este numero de telefono ya esta asignado a un usuario"},
"correo" : {"min":3, "query":consulta.verificarCorreo, "param":[f"{correo.value}{tipoCorreo.value}",], "msj":"Este correo ya esta en uso"},
"ubicacion" : {"min":3, "query":consulta.verficarUbicacion, "param":[ubicacion.value,], "msj":"Esta ubicacion ya esta en uso"},
"nivelUser" : {"min":4},
"tipoCorreo" : {"min":4},
"codigoTelefono" : {"min":4}
}
Затем я просматриваю этот словарь с помощью for и передаю ему значения, которые находятся внутри

Код: Выделить всё

todoValido = True
print(todoValido)

for nombreCampo, config in listaCondicion.items():
if bool(validaciones.validarCampos(page, eval(nombreCampo), config["min"])) == True:
print("entro en la validacion de campos")
todoValido = False
if "query" in config:
if bool(validaciones.validarConsultas(page, config["query"], config["param"], config["msj"])) or todoValido == True:
todoValido = False
print("paso por validacion de la consulta")
else: print("no paso nada")

print(todoValido)

if todoValido == True:
print("pasaste a la siguiente seccion del formulario")

print()
В интерфейсе видно, что он вроде бы работает правильно, но я вставил в него какой-то отпечаток, чтобы лучше следить за циклом, и он всегда выдает такой результат

Код: Выделить всё

True
no paso nada
no paso nada
paso por consulta
no paso nada
no paso nada
no paso nada
False
Я не знаю, что делать, всегда пропускает первое условие, и если все поля проверены правильно, не позволяет перейти к следующей форме
Это класс, который я использую для проверки на случай, если он вам понадобится.

Код: Выделить всё

class validaciones:
#CONDICIONES
condicionAlfanum = r"^[0-9A-Za-z]*$"
condicionEspacio = r"^[^\s]+$"

def validarCampos(page, campo, min):
if not campo.value:
campo.error_text = mensaje.campoFaltante
page.update()
return False
elif len(campo.value) < min:
campo.error_text = mensaje.minimoCaracteres(min)
page.update()
return False

def validarConsultas(page, consulta, parametros, mensaje):
if db.consultaConRetorno(consulta, parametros):
page.snack_bar = SnackBar(content=Text(mensaje))
page.snack_bar.open = True
page.update()
return False
Надеюсь, вы сможете мне помочь. Если я смогу заставить это работать, я смогу применить его ко всему моему коду, заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/792 ... for-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»