Open mauriciofierrom opened 10 years ago
No creo que sea necesario heredar de esas clase para usarla.
Usando un objeto de la clase da errores al enviar el self como parámetro a los métodos, ya que intenta usar el self de la clase validation en lugar de la de la clase de la que se quiere validar. La herencia funcionó. Si conoces una forma óptima de hacerlo, sería genial.
veo que el validations esta en el modulo entonces se puede hacer
import .validation
validation.methodo()
Importando de esta forma
from validation import validation
Y con el código de la clase de esta forma
class blood_type(osv.osv):
""" Clase para los Tipos de Sangre """
_name = "blood.type"
_description = "Registra los tipos de sangre"
_columns = {
'name': fields.char("Nombre", size=3, required=True),
'code_mrl': fields.char('Código MRL', size=3)
}
_order = "name"
_sql_constraints = [('name_unique', 'unique(name)', _(u'Ya existe un Tipo de Sangre con ese nombre.')),
('cod_unique', 'unique(code_mrl)', _(u'Ya existe un Registro con ese Código Mrl'))]
_constraints = [(validation.no_numbers, _(u"El Tipo de Sangre no debe contener números."), ['name'])]
Me da este error
los metodos _constraints deben ser metodos de la clase, no los puedes sacar a otra instancia.
Podrias hacer:
def no_numbers(cr, uid, ids): validation.no_numbers(argumentos_de_obj_id)
constraints = [(no_numbers,..)])
Sí, por eso mismo realicé la herencia, para no tener entonces en cada clase repetidos los métodos llamando a los métodos de la otra clase. Al heredar, los métodos de validation son métodos de clase, así que funciona. Qué tanto ayuda a evitar la repetición de código es cosa subjetiva, y si hay una forma mejor, sería genial poder cambiarlo.
La clase de validaciones para el módulo iaen_base ha sido implementada. Para usar las funciones los modelos deben heredar de la clase validation y llamar a sus métodos desde la declaración de campo _constraint e.g.