2012-10-22 2 views
0

저는 Tastypie를 처음 사용하는 초보자이며 CRUD 작업을 신속하게 수행 할 수있는 훌륭한 방법입니다. 하지만 반환 값이 모델이 아닌 다른 종류의 웹 서비스를 구현하고 싶습니다. 예를 들어, 나는이Django/Tastypie의 CRUD 작업이 없습니다.

class User(models.Model): 
    name = models.CharField(max_length=20) 
    age = models.PositiveSmallIntegerField() 

같은 간단한 모델을 가지고 및/API/V1/사용자/avg_age을 통해, 내가 그것을 어떻게해야 모든 사용자의 평균 연령을 얻을 원한다면? 아마도 그것은 Tastypie 이상 장고 URL과 관련된 것이지만 나는이 순간 분실되었다. 그래서, 문제는 어디에/어떻게 사용자 정의 REST 웹 서비스를 정의해야합니까? 미리 감사드립니다.

답변

0

모델에 메서드를 추가하거나 service layer에 넣을 수 있습니다. 이렇게 한 후 dehydration 사이클을 사용하여 자원에 값을 쉽게 추가 할 수 있습니다.

값을 필터링 할 수있는 또 다른 옵션은이 데이터를 보유한 모델을 구현하는 것입니다 (예 : UserStatistics 모델. 그런 다음 외래 키 관계를 추가하거나 독립형 리소스를 만들 수 있습니다.

데이터가 많이 변경되지 않고 이러한 계산이 더 비싸기 때문에 정기적으로 데이터베이스 쓰기 만 실행하는 것과 같은 모델에 대한 cronjob 또는 작업을 생성하는 것이 좋습니다