2008-10-14 3 views
5

브라우저에서 많은 JavaScript 작업을 수행 중이며 프론트 엔드에 백엔드 기능 중 일부를 갖고 싶습니다. 특히 클라이언트에서 사용할 수있는 기능이 get(), save(), all()count() 인 것이 좋습니다. 또한 생성 된 JavaScript 객체에서 모델의 필드 목록을 이미 사용할 수 있다는 것이 좋습니다.Django 모델에서 JavaScript 객체 생성

현재 사용자가 레코드를 읽거나 쓸 수 있는지 여부는 별도의 문제이므로 장고의 인증을 사용하여 처리 할 것입니다. 당분간 검색이 시작됩니다.

즉, 장고 모델에서 JavaScript 모델을 생성하는 코드가 있습니까?

감사합니다.

답변

7

모델 및 쿼리 세트 API에 대한 완벽한 JavaScript 인터페이스를 찾는 것처럼 들립니다. 나는 이것이 이제까지 완료되었거나 심지어 간단한 작업 일 것 인 것을 상상할 수 없다. 어떻게하면 JSON 직렬화가 제공하는 것보다 훨씬 많은 모델의 JavaScript 인스턴스를 생성해야 할뿐만 아니라 모든 종류의 DB-API 호출을 처리 할 수있는 웹 서비스를 노출해야합니다. 어디서부터 시작할 지 상상할 수 없으며 쉽게 해결할 수있는 보안 문제가 너무 많을 수 있습니다.

대체 (훨씬 간단) 한 접근법은 다양한 Django REST 모듈과 JSON 직렬화 중 하나를 사용하는 것입니다. 리소스에 대해 AJAX GET 요청을 수행 할 수 있습니다.이 요청은 일련의 쿼리 매개 변수로 식별 할 수 있습니다.이 매개 변수는 연결된 쿼리 세트 필터와 동일합니다. 그러면 모델 값의 JSON 표현이 반환됩니다. 그런 다음 JavaScript 객체를 수정하고 오버로드 된 AJAX POST 요청을 사용하여 변경 사항을 서버에 다시 유지할 수 있습니다. 모델의 메소드에 액세스 할 수 없으므로 기능을 다시 구현해야하지만 모델을 변경하는 것은 간단해야합니다. 기본적으로 HTML 양식을 사용하여 데이터를 수정하는 JavaScript와 같습니다.

+0

예, 이것이 올바른 접근 방법이라고 생각합니다. 시작하기 전에 아마 http://jacobian.org/writing/rest-worst-practices/를 읽고 싶을 것입니다. –

0

JSON encode 개체 데이터로 보입니다. 데이터 형식에 대한 자세한 내용은 JSON.org을 참조하십시오.

+0

JSON 인코딩은 오브젝트 데이터만을 제공합니다. 참조 모델 (또는 해당 이름)은 제공하지 않으며 기능은 제공하지 않습니다. : – Dimitry

1

데이터 시리얼 라이저가 필요합니다. 당신은 serializer에 내장 된 django로 할 수 있습니다. 그것은 공식 장고 사이트에 문서화되어 있습니다. djangoproject_topics-serialization

1

내가 찾고있는 프로젝트를 시작했습니다. github_bumby_jslib에서 찾을 수 있습니다.
현재 get() 만 지원합니다. 그러나 곧 확장 할 예정입니다. 기꺼이 패치를 제공하십시오 :)

jslib는 장고 프로젝트와의 AJAX 통합을 단순화하기위한 Django 응용 프로그램입니다.

0

원래 질문을 올린 지 꽤 오래되었으므로 그 이후로 장골 랜드에서 많은 발전이있었습니다. 적어도 Django REST Framework라는 훌륭한 라이브러리가 있습니다. 나는 새로운 프로젝트에 그것을 사용할 것이고 그것은 꽤 kewl을 찾고있다.

http://www.django-rest-framework.org