さまざまなリソースを予約するためのPloneカレンダーモジュールを書いています。このモジュールは、イベントがPostgresqlに保存されているカレンダーを備えています。各カレンダーは、ZODBに保存されているDexterityオブジェクトです。
PloneとPostgresqlの間のリンクを作成するために、私は自然にPloneオブジェクトのuuidプロパティに目を向けました。したがって、Ploneの各uuidは、ネイティブでuuidをサポートするPostgresqlの外部キーとして機能します。
これは、私がPlone 4.1.4を使い始めるまで、過去6か月間でうまく機能しました。これに伴い、plone.uuid 1.0.2が導入され、uuidの文字列表現がダッシュ付きのuuidからダッシュなしのuuidに変更されました。
この変更の問題は、特定のオブジェクトでどの表現が使用されるかがわからなくなることです。Plone 4.1.4より前に作成されたオブジェクトには、後に作成されたオブジェクトとは異なる形式のuuid文字列が含まれています。
簡単に言うと、私のコードが任意のuuid表現で機能することを確認するために、Pythonのuuidタイプを使用して検索できるようにしたいと思います。
したがって、これの代わりに:
catalog.searchResults(UID='325dc47e-08f9-4fa1-bc18-3944a725adb4')
これはこれとは異なる結果を返します:
catalog.searchResults(UID='325dc47e08f94fa1bc183944a725adb4')
私はこれをしたいです:
from uuid import UUID
catalog.searchResults(UID=UUID('325dc47e-08f9-4fa1-bc18-3944a725adb4'))
これはこれに相当します:
catalog.searchResults(UID=UUID('325dc47e08f94fa1bc183944a725adb4'))
Ploneでのuuidの表現から、この種の独立性を実現する方法を知っている人はいますか?