您好 假设我有一个这样的简单模型类:
class TestModel(models.Model):
testkey = models.ForeignKey(TestModel2)
...
当我创建一个TestModel对象时,我必须传递一个TestModel2对象的实例来创建它:
testkey =TestModel2.objects.get(id=...)
TestModel.objects.create(testkey=testkey)
这会导致我想对数据库进行2次查询,并且我有一个外键ID列表,我需要用它来创建对象。
是否可以在不初始检索外键对象的情况下创建具有外键的对象?
答案 0 :(得分:68)
你所追求的是:
TestModel.objects.create(testkey_id=1)
答案 1 :(得分:0)
在get_or_create
中,它将失败。因此,使get_or_create
在下面工作是解决方案:
TestModel.objects.get_or_create(testkey=TestModel2(id=1))
答案 2 :(得分:0)
在我的情况下,TestModel.objects.create(testkey__id=1)
对我不起作用,因此我不得不用一个下划线而不是两个下划线
TestModel.objects.create(testkey_id=1)