我想创建一个使用https://developer.microsoft.com/en-us/graph/graph-explorer应用程序接口作为数据源的新模型,因为我想获得有关用户的额外信息。
在模型上使用计算属性不起作用,因为它将查询集合中的每个实例。
因此,我想让模型与一个以api作为其数据源的新模型相关联。
我找不到关于这个主题的任何东西,除了可能滥用from_db()方法之外,如果它还能工作的话。
发布于 2020-10-01 02:00:47
看起来您要做的是缓存来自外部API的数据,该API与您的用户模型数据相关,并对其进行扩充/丰富。如果是这样的话,您可以简单地使用use a custom user model (而不是Django的默认值;这是强烈推荐的做法),然后简单地将外部API数据以序列化形式存储在自定义用户模型的TextField属性中(让我们称其为user_extras;您可以编写模型方法来序列化和反序列化这个字段,以方便在视图中访问)。
因此,关键的挑战是如何保持user_extras的新鲜性,而不会做一些糟糕的性能方面的事情,也不会遇到像API调用限制这样的限制。正如您所说,我们不能在计算属性中进行API查询。(至少不是同步的)然后,一种选择是有一个批处理作业/后台任务,它定期遍历用户数据库,以某种受控的、可预测的方式更新user_extras。
https://stackoverflow.com/questions/64140163
复制相似问题