2011-12-24 2 views
4

무거운 클라이언트 응용 프로그램을 사용하여 약간의 연주. Django, Tastypie 및 새 객체 데이터 검색

나는이 모델이 상상 :

class Category(models.Model): 
    name = models.CharField(max_length=30) 
    color = models.CharField(max_length=9) 

임 knockoutjs를 사용하여 (그러나 나는 이것이 중요하지 않습니다 생각). 카테고리 (observableArray) 목록이 있고 새로운 카테고리를 만들고 싶습니다.

새 개체를 만들고 목록으로 밀어 넣습니다. 여태까지는 그런대로 잘됐다.

내 데이터베이스에 저장하는 방법은 무엇입니까? 나는 tastypie를 사용하기 때문에 '/ api/v1/category /'와 voilà에 대한 POST를 만들 수 있습니다. 새로운 카테고리는 DB에 있습니다.

하지만 ... 페이지를 새로 고치지 않았습니다 ... 새 카테고리를 업데이트하려면 어떻게해야합니까?

즉, 카테고리를 검색 할 때 '/ api/v1/category/id'에 넣고 변경 사항을 저장할 수 있도록 ID를 저장할 수 있습니다.하지만 ... 새 카테고리를 만들면 , DB는 그것에 ID를 할당하지만 내 자바 스크립트는 아직 그 ID를 모른다.

> 새로운 카테고리를 만들> 목록에 (자신의 ID가) 기존의 물체를 넣거나>를 얻을 수 있도록 목록에 밀어> 기존 범주를 저장합니다

, 워크 플로 같은 것이있다 (카테고리는 javacript에 id가 없습니다)> 카테고리 편집> 변경 사항 저장 방법

내 질문은 일반적인 경로는 무엇입니까? 카테고리를 보내고 어떻게 든 ID를 검색하고 js의 객체에 할당하여 나중에 수정할 수 있다고 생각했습니다. 문제는 서버에 대한 POST가 아무 것도 반환하지 않는다는 것입니다.

이전에는 내가 게시물을 통해 개체를 보내고 저장하고 검색 한 다음이를 다시 보내 성공 메서드에서 ID를 검색하고 js 개체에 할당했습니다.

감사합니다.

답변

8

Tastypie에는 리소스 용 always_return_data 옵션이 제공됩니다.

리소스에 대해 always_return_data=True 인 경우 API는 항상 POST/PUT에서 전체 개체 이벤트를 반환하므로 새 개체를 만들 때 동일한 요청에서 생성 된 ID를 가져올 수 있습니다.

그러면 AJAX에서 응답을 읽고 JSON을 디코딩 할 수 있습니다 (아직 녹아웃에 대해 모른다). 이

을하는 데 도움이 http://readthedocs.org/docs/django-tastypie/en/latest/resources.html?highlight=always_return_data#always-return-data

희망 :

는 문서를 참조