2011-06-21 22 views
1

私は次のような構造を持っている、Ploneのフォルダに新しいオブジェクトを作成します。代わりの自動的IDSのみ連続番号

/Plone/folder/2011/06/21/1 
/Plone/folder/2011/06/21/2 
/Plone/folder/2011/06/21/3 
/Plone/folder/2011/06/21/4 

::私が持っていると思います

/Plone/folder/2011/06/21/id-1 
/Plone/folder/2011/06/21/id-2 
/Plone/folder/2011/06/21/id-3 
/Plone/folder/2011/06/21/id-4 

...それが自動的に行われますが、私はフォルダ内に同じ名前のオブジェクトを作成しようとすると、Ploneは私のために追加することを処理します連続番号。オブジェクトを作成する効率的な方法が必要ですが、シーケンシャルな番号の名前の代わりにシーケンシャルな番号を使用するだけです。私はフォルダ内のアイテムの総数を取得することができますが、より良い方法があるかどうかを知りたいと思います。

実際の生活の例:次に、あなたはそのIDを使用して手動でオブジェクトを作成する必要があります

brains = context.getFolderContents({'sort_on' : 'id', 'sort_order' : "reverse"}) 
if len(brains) > 0: 
    id = str(int(brains[0].id) + 1) 
else: 
    id = '1' 

:手動でこれらのオブジェクトを作成する場合はhttp://plone.org/products/collective.captcha/issues/4

答えて

2

、あなたのような何かを行うことができます。

ユーザーがコンテンツを作成したときにこれを自動的に実行したい場合は、コンテンツルールを作成してコンテンツのIDを変更することができます。助けになる例はcollective.contentrules.yearmonth

+1

同じIDを2度取得するため、オブジェクトを削除すると問題が発生する可能性があります。私は同様のアプローチを使用しています:http://pypi.python.org/pypi/gocept.sequence/ – Yuri

関連する問題