Django将查询结果插入数据库

2024-10-02 08:16:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据库表,名为“Tags”:

   ID   | Name   |  Uses 
 ------------------------
   1    | Python |   0
   2    | Java   |   0
   3    | C++    |   0
   4    | Ruby   |   0

我有另一个表“TagMap”,用于将这些标记映射到用户,每个用户可以有多个标记。在

我想查询TagMap表以查找每个标记被使用的总次数,然后将其保存到该标记的“Uses”列中。例如,如果5个用户有标记“Python”,那么我希望“Uses”列读取“5”而不是“0”。在

我已经在网上找过怎么做,但我的主要问题是我不确定我应该搜索什么,任何帮助将不胜感激。在


Tags: 用户name标记id数据库tagsjava次数
2条回答

Django将允许您查询您的TagMap模型(假设这里有一个Django模型),以获取给定标记对应的条目数。在

然后,您将能够在对ORM的单独调用中更新使用计数器。在

使用原始SQL查询,您可能可以在单个查询中同时完成这两项任务,但Django ORM不允许这样做(另请参见Django subquery in insert)。在

根据您的并发需求,如果您想坚持使用ORM进行这种非规范化,那么在第一个查询中使用select_for_update可能有助于实现隔离。在

tag = Tags.objects.get(Name='Python')
count = TagMap.objects.filter(tag=tag).count()
tag.Uses = count
tag.save()

相关问题 更多 >

    热门问题