2014-12-07 44 views
1

在我的应用程序中,我想为我的一些资源端点使用item_lookup_field设置。另外我需要版本控制。使用item_lookup_field进行版本创建KeyError

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的enpoint /people/obama作品,但/people/obama?version=1创建以下KeyError异常:

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:第一次发帖,请如果你需要什么

回答

1

我相信Document Versioning仅支持标准的端点(ID_FIELD),而不是在item_lookup_filter告诉我。尽管如此,您可能想要打开一张票据,所以Josh和其他从事Versioning工作的人员可以查看是否可以添加对替代端点的支持。

1

我没有足够的“信誉”发表评论,所以这不是一个答案,但对尼古拉的回答评论:

同意,我想我们根本不会实现该功能。请在Github上打开一张票(并提交一个请求?!)。

+0

done (https://github.com/nicolaiarocci/eve/issues/524) – otibsa 2014-12-09 23:31:19