В моем приложении у меня есть хук, который должен обновлять поле в ресурсе: в другом post кто-то использовал метод patch_internal, но я не понял, как.
from my_application import app
from eve.methods.patch import patch_internal
def my_hook(...):
with app.test_request_context():
patch_internal("my_resource", payload={"bar": "bar_value"}, lookup={"foo": "foo_value"})
Я пытался использовать PRESERVE_CONTEXT_ON_EXCEPTION = False
в settings.py
.
В зависимости от того, как я пытаюсь это сделать, я получаю либо
404 для исходного запроса, который в первую очередь вызвал хук,
или AssertionError:
.
Debugging middleware caught exception in streamed response at a point where response headers were already sent.
Traceback (most recent call last):
File ".../lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File ".../lib/python2.7/site-packages/flask/app.py", line 1825, in wsgi_app
ctx.auto_pop(error)
File ".../lib/python2.7/site-packages/flask/ctx.py", line 374, in auto_pop
self.pop(exc)
File ".../lib/python2.7/site-packages/flask/ctx.py", line 357, in pop
% (rv, self)
AssertionError: Popped wrong request context.
(<RequestContext 'http://127.0.0.1:5001/' [GET] of eve> instead of <RequestContext 'http://127.0.0.1:5001/my_endpoint' [GET] of eve>)
Мой вопрос:
Каковы правильные параметры для patch_internal? Как мне сказать Еве, какой предмет я хочу изменить?
foo
этоunique
иrequired
(но я также пробовал поиск с помощью '_id: ObjectId(...)` , и элемент, который я хочу изменить, существует в базе данных, - person otibsa   schedule 06.02.2015