0

couchdb.mapping.Document クラスの rev プロパティが読み取り専用属性である理由を知りたいです。id 属性も設定できます。私のプロジェクトでは、CouchDB ビューから取得した rev を使用して新しいドキュメントを作成する必要があります。rev が CouchDB で生成されることは知っていますが、作成者がそのような例外を予測していなかったのは残念です。さらに、私の謙虚な意見では、パラメーターを持つ Document クラスの get メソッドが必要です: ids - これはドキュメントの多くの識別子です。

@property
def rev(self):
    """The document revision.

    :rtype: basestring
    """
    if hasattr(self._data, 'rev'): # When data is client.Document
        return self._data.rev
    return self._data.get('_rev')
4

1 に答える 1

1

あなたは「私は自分のプロジェクトで rev で新しいドキュメントを作成する必要がある」と言いますが、これがこの python lib で可能かどうかにかかわらず、これは CouchDB 自体では不可能であるため、lib でこれを設定できるようにしても影響はありません。あなたの実際のデータ。

CouchDB 内の_revは、競合解決のために CouchDB によって厳密に管理されます。CouchDB が設定した値から変更することはできません。(FWIW、CouchDBでは、好きな(一意の)任意のものを設定できます_id。これが、python libの書き込み可能なフィールドである理由です)。

于 2012-07-17T16:49:16.950 に答える