我是Tastypie的新手,你很快就可以用它来实现CRUD操作。但我想实现其他类型的Web服务,其中返回值不是模型。例如,如果我有一个像这样的简单模型
class User(models.Model):
name = models.CharField(max_length=20)
age = models.PositiveSmallIntegerField()
并希望通过/ api / v1 / user / avg_age获得所有用户的平均年龄,我该怎么做?也许它与Djasto URL相关的东西比Tastypie更多,但我现在迷失了。那么,问题是我应该在哪里/如何定义自定义REST Web服务? 提前致谢
答案 0 :(得分:0)
您可以将方法添加到模型本身或将其放在service layer中。完成此操作后,您可以轻松地将值添加到dehydration周期的资源。
允许对值进行过滤的另一个选项是实现保存此数据的模型,例如, UserStatistics模型。然后,您可以添加外键关系或创建独立资源。
因为数据不太可能会发生很大变化,而且这些计算成本更高,我建议您为这样的模型创建一个cronjob或任务,只定期执行数据库写入