在Django中,如何控制查询集使用哪个数据库连接和游标

4 投票
1 回答
583 浏览
提问于 2025-04-15 13:55

我想让一个查询集(queryset)在一个不同的数据库连接上执行查询,并使用不同的游标类。有没有人知道这是否可能,如果可以的话,应该怎么做呢?下面是伪代码:

  # setup a new db connection:
  db = db_connect(cursorclass=AlternateCursor)

  # setup a generic queryset
  qset = blah.objects.all()

  # tell qset to use the new connection:
  qset.use_db(db)

  # and then apply some filters
  qset = qset.filter(...)

  # and execute the query:
  for object in qset:
     ...

谢谢!

1 个回答

3

从Django 1.0开始,这个功能就可以实现了。关键是要为你的模型使用一个自定义的管理器,并替换掉管理器的连接对象。你可以查看Eric Florenzano在这个链接中的代码:http://www.eflorenzano.com/blog/post/easy-multi-database-support-django/

撰写回答