couchdb-python: атрибут rev класса couchdb.mapping.Document доступен только для чтения

Я хотел бы знать, почему свойство rev класса couchdb.mapping.Document является атрибутом только для чтения. Может быть установлен даже атрибут id, и мне нужно в моем проекте создать новый Document с rev, который я получаю из представления CouchDB. Я знаю, что rev генерируется в CouchDB, но жаль, что создатели не предсказали такое исключение. Более того, по моему скромному мнению, должен быть метод get для класса Document с параметром: 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')

1 ответ

Решение

Вы говорите: "Мне нужно в моем проекте создать новый документ с rev", но, возможно ли это в этой библиотеке Python или нет, это невозможно в самой CouchDB, поэтому установка этого параметра в вашей библиотеке не будет влиять на ваши фактические данные.

_rev в CouchDB жестко управляется CouchDB для разрешения конфликтов, вы не можете изменить его на значения, которые CouchDB устанавливает для него. (FWIW, CouchDB позволяет установить любой (уникальный) _id вам нравится, вот почему это поле для записи в вашей библиотеке Python).

Другие вопросы по тегам