0

我是 Tastypie 的新手,您可以如此快速地实现 CRUD 操作,这真是太棒了。但我想实现其他类型的 Web 服务,其中返回值不是模型。例如,如果我有一个像这样的简单模型

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

并想通过/api/v1/user/avg_age获取所有用户的平均年龄,我该怎么做?也许它与 Django URL 相关的东西比 Tastypie 更重要,但我现在迷路了。所以,问题是我应该在哪里/如何定义我的自定义 REST Web 服务?提前致谢

4

1 回答 1

0

您可以将方法添加到模型本身或将其放在服务层中。这样做之后,您可以通过脱水循环轻松地将价值添加到资源中。

另一个允许对值进行过滤的选项是实现一个保存该数据的模型,例如 UserStatistics 模型。然后,您可以添加外键关系或创建独立资源。

因为数据不太可能发生很大变化,而且这些计算成本更高,所以我鼓励您为这样的模型创建一个 cronjob 或任务,只定期执行数据库写入

于 2012-10-22T06:58:48.470 回答