Frage

Ich habe diesen Mapper definiert:

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()))})

Aber aus irgendeinem Grunde, wenn ich eine neue Zeile in der Beziehungstabelle erstellen und die end_date der alten Zeile in der Beziehung zu einem alten Datum ändern, werden die Eigenschaft Eltern nicht aktualisiert. Auch wenn ein Neuladen der Ressourcenreihe, die alte Beziehung mit dem alten Datum angezeigt wird, so dass ich bin ich ziemlich sicher, dass es mit dem Datum Vergleich in der Mapper zu tun hat.

Wenn ich die end_date durch eine Flag-Spalte String oder Integer ersetzen und einen Vergleich auf der Flagge muss ich das richtige Verhalten bekommen, aber ich möchte zu verwenden, um Daten.

Jede Hilfe ist willkommen.

Danke,

Richard Lopes

War es hilfreich?

Lösung

Ich habe tatsächlich gefunden, was falsch war. Die Beziehung funktioniert tatsächlich. Das Problem wurde durch die Einstellung der end_date zu so etwas wie datetime.now () gelöst - 1 Sekunde, so geschieht es, bevor die Ressource tatsächlich von SQLAlchemy aktualisiert wird. Ein Millisekunden ausgeben nehme ich an.

Richard Lopes

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top