0

このマッパーを定義しました:

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

しかし、何らかの理由で、リレーションテーブルに新しい行を作成し、リレーションの古い行のend_dateを古い日付に変更すると、プロパティの親は更新されません。また、リソース行をリロードすると、古い日付との古い関係が表示されるので、マッパーでの日付の比較に関係していると確信しています。

end_dateをフラグ列の文字列または整数に置き換えてフラグを比較すると、適切な動作が得られますが、日付を使用したいと思います。

どんな助けでも大歓迎です。

ありがとう、

リチャード・ロペス

4

1 に答える 1

0

私は実際に何が悪かったのかを見つけました。関係は実際に機能しています。この問題は、end_dateをdatetime.now()-1秒のように設定することで解決されたため、リソースがSQLAlchemyによって実際に更新される前に発生します。ミリ秒の問題だと思います。

リチャード・ロペス

于 2010-03-05T04:43:53.417 に答える