2014-10-19 3 views
0

Я пытаюсь создать простую базовую платформу с базой данных/марионеткой, которая связана с python eve rest api. После показа модели (название, содержание) в форме, отредактировать содержимое и сохранить его следующим образом:backbone model save on eve не работает

this.model.save({title:t_title,content: t_content},{ headers: {'If-Match' : this.model.get("_etag")}}); 

t_title и t_content являются значения/входы из текстовых полей.

Когда я ударил кнопку сохранить и вызвать выше кода я получаю 200 OK для PUT, но ответ возвращаемый следующее сообщение об ошибке и обновление не происходит в БД:

{"_status": "ERR", "_issues": {"_updated": "unknown field", "_created": "unknown field", "_id": "unknown field", "_links": "unknown field", "_etag": "unknown field"}} 

Что еще мне нужно сделать это обновление?

+1

Я думаю, вам нужно добавить к параметрам (последний параметр 'save')' patch: true', чтобы отправить только 2 поля вместо всех из вашей модели, так как я вижу, что ваша бэкэнд-модель не знает о поля, такие как _updated, _created и т. д. –

+0

Спасибо Eugene! Это исправило это! – Moon

+0

Я дал ответ :-) на основе комментария –

ответ

2

Проблема заключается в том, что при вызове save() он отправляет все поля модели, но, похоже, ваша серверная сторона не сохраняет все поля модели и принимает только два поля (title и content). Для этого случая мы можем использовать опцию patch: true, он получит HTTP-запрос PATCH на сервер только с атрибутами переданного.

Это фиксированный код с patch: true, который добавлен в опции.

this.model.save({title:t_title,content: t_content},{ patch: true, headers: {'If-Match' : this.model.get("_etag")}});