Django的ORM支持通过基于过滤器的操作使用.using()函数从特定数据库(在项目中定义多个时)进行查询。在多个数据库中使用Django ORM get_or_create
例如MyModel.objects.filter(name='Bob').using('my_non_default_database')
如何通过类MyModel()或类似get_or_create()的快捷方式创建新记录时做相同的操作?
Django的ORM支持通过基于过滤器的操作使用.using()函数从特定数据库(在项目中定义多个时)进行查询。在多个数据库中使用Django ORM get_or_create
例如MyModel.objects.filter(name='Bob').using('my_non_default_database')
如何通过类MyModel()或类似get_or_create()的快捷方式创建新记录时做相同的操作?
using
是在MyModel.objects
经理的方法,所以你可以做
MyModel.objects.using('my_non_default_database').get_or_create(name="Bob")
如果你有一个为MyModel例如,你可以使用using关键字来指定该数据库保存到。 django docs指出了一些问题。
my_model = MyModel(name="Bob")
my_model.save(using='my_non_default_database')
using
只是标准查询链的一部分。因此,在将查询发送到数据库之前,您可以在任何位置使用它。 get_or_create
与filter
不同,它是原子的:当你调用它时,它立即执行它,因此在此之前你只需要调用using
。
MyModel.objects.using('my_non_default_database').get_or_create(name='Bob')
它是如何处理常规模型创建?例如MyModel(name ='bob') – Cerin
保存有一个关键字参数'using'。我已经更新了我的答案。 – Alasdair