Как менять формат поля датировало, что он находится в драйвере и не в модели?

У меня есть дата, которая такая:

db.define_table('registro',
                Field('numero_documento', 'string'),
                Field('usuario', 'reference usuarios'),
                Field('fecha_ingreso', 'date'),
                format='%(numero_documento)s'
                )

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

db.registro.fecha_ingreso.represent = lambda value, row: value.strftime('%y/%m/%d)

Сейчас, сомнение, которое у меня есть, какой я могу делать этот же самый процесс в драйвере, который этот:

def datos_fechas():
    form = SQLFORM.factory(
        Field('usuario', 'reference usuarios',requires=IS_IN_DB(db, db.usuarios, '%(nombre)s', zero='---- Elegir Opcion ----')),
        Field('desde', 'date'),
        Field('hasta', 'date'),
    )
    data = db((db.registro.usuario==usuario) &
                  ((db.registro.fecha_ingreso>=desde) & (db.registro.fecha_ingreso<=hasta))
                  ).select(
            db.usuarios.nombre,
            db.registro.numero_documento,
            db.registro.fecha_ingreso,
            left=(
                db.usuarios.on(db.usuarios.id==db.registro.usuario),
            )
    )

Поля inicio и final у них есть формат d/m/y и я хочу изменить это в формат y/m/d.

2
задан 11.04.2016, 16:41
1 ответ

Если ты имеешь в виду формуляр, возможно перемещать его validador, чтобы вынуждать формат используя IS_DATE:

form = SQLFORM.factory(
    Field('usuario', 'reference usuarios',requires=IS_IN_DB(db, db.usuarios, '%(nombre)s', zero='---- Elegir Opcion ----')),
    Field('desde', 'date', requires=IS_DATE(format='%y-%m-%d')),
    Field('hasta', 'date', requires=IS_DATE(format='%y-%m-%d')),
)

Для большей информации ты можешь видеть секцию Forms and Validators.

2
ответ дан 24.11.2019, 14:36