以API为数据源的Django模型



我想创建一个新模型,该模型使用https://developer.microsoft.com/en-us/graph/graph-explorerapi作为数据源,因为我想获得关于用户的其他信息。

在模型上使用计算属性是不起作用的,因为它将查询集合中的每个实例。

所以,我想让这个模型与一个新的模型相关,这个模型的数据源是api。

我找不到任何关于这个主题的东西,除了可能滥用from_db()方法,如果这真的有效的话。

您试图做的似乎是从外部API缓存数据,该外部API与用户模型数据相关,并扩充/丰富用户模型数据。如果是这样,您可以简单地使用自定义用户模型(而不是Django的默认模型;无论如何,这是一种高度推荐的做法(,然后简单地将外部API数据以序列化的形式存储在自定义用户模型的TextField属性中(让我们将其称为user_extras;您可以编写模型方法来序列化和反序列化此字段,以方便在视图中访问(。

因此,关键的挑战是如何保持user_extras的新鲜感,而不会在性能上做一些糟糕的事情,也不会受到API调用限制等限制。正如您所说,我们不能在计算属性中执行API查询。(至少不是同步的。(一种选择是让一个批处理作业/后台任务定期通过用户数据库,以某种可控、可预测的方式更新user_extras

最新更新