2

item_lookup_field私のアプリケーションでは、いくつかのリソース エンドポイントの設定を使用したいと考えています。また、バージョン管理が必要です。

私はsettings.py次のものを持っています:

[...]
VERSIONING = True
ITEM_URL = 'regex("[a-z0-9]{0,24}")'
DOMAIN = {
    'people': {
        'item_lookup_field': 'lastname',
        'type': 'dict',
        'schema': {
            'firstname': { 'type': 'string' },
            'lastname': { 'type': 'string', 'required': True, 'unique': True },
        } 
    }
}

GETエンドポイントの Aは機能しますが、次の KeyError/people/obamaが作成されます。/people/obama?version=1

Traceback (most recent call last):
  File "/foobar/eve0.5_env/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)

[...]

  File "/foobar/eve0.5_env/lib/python2.7/site-packages/Eve-0.5_dev-py2.7.egg/eve/methods/get.py", line 210, in getitem
resource, req, lookup, document, version)
  File "/foobar/eve0.5_env/lib/python2.7/site-packages/Eve-0.5_dev-py2.7.egg/eve/versioning.py", line 257, in get_old_document
    lookup[versioned_id_field()] = lookup[app.config['ID_FIELD']]
KeyError: '_id'

構成を変更する必要がありますか?

これはバグですか?


PS: 初投稿です。何か他に必要なものがあれば教えてください。

4

2 に答える 2

2

ドキュメントのバージョン管理ID_FIELDは、標準エンドポイント ( ) でのみサポートされ、 item_lookup_filter. ただし、それについてのチケットを開きたいと思うかもしれません。そうすれば、バージョン管理に取り組んでいる Josh や他の人が、代替エンドポイントのサポートを追加できるかどうかを確認できます。

于 2014-12-08T08:55:12.600 に答える
2

コメントするのに十分な「評判」がないため、これは回答ではなく、ニコラの回答に対するコメントです。

同意しましたが、私たちは単にその機能を実装したことがないと思います. Githubでチケットを開いてください (そしてプル リクエストを送信してください?!) 。

于 2014-12-08T22:29:00.537 に答える