Pregunta

Me han definido este asignador:

mapper(Resource, resource_table,
 properties = {'type' : relation(ResourceType,lazy = False),
  'groups' : relation(Group, secondary = model.tables['resource_group'], 
      backref = 'resources'),
  'parent' : relation(Relation, uselist=False, primaryjoin = 
      and_(relation_table.c.res_id == resource_table.c.res_id, 
      relation_table.c.end_date > datetime.now())),
  'children' : relation(Relation, primaryjoin = 
      and_(relation_table.c.parent_id == resource_table.c.res_id, 
      relation_table.c.end_date > func.now()))})

Pero por alguna razón, si se crea una nueva fila en la tabla de relación y cambiar el fecha_final de la vieja fila de la relación con una fecha antigua, el padre propiedad no se actualiza. Además, si una recarga de la hilera de recursos, se muestra la relación de edad, con la fecha de edad, así que estoy bastante seguro de que tiene que ver con la comparación de fechas en el asignador.

Si se sustituye la fecha_final por una serie de columna de bandera o entero y hacer una comparación en la bandera consigo el comportamiento adecuado, pero yo quiero fechas de uso.

Cualquier ayuda es bienvenida.

Gracias,

Richard Lopes

¿Fue útil?

Solución

De hecho, me he encontrado lo que estaba mal. La relación está trabajando realmente. El problema se resolvió mediante el establecimiento de la fecha_final a algo así como datetime.now () - de 1 segundo, lo que ocurre antes de que el recurso es en realidad refrescado por SQLAlchemy. A milisegundos emiten supongo.

Richard Lopes

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top