使用SELECT等效项中的字段值创建Django对象
我正在试图找出如何使用Django复制以下内容-有人需要帮助吗使用SELECT等效项中的字段值创建Django对象,django,django-models,sql-insert,Django,Django Models,Sql Insert,我正在试图找出如何使用Django复制以下内容-有人需要帮助吗 INSERT INTO table1 (table2_id, a_field) SELECT table2.id as table2_id, table3.a_field FROM table2 INNER JOIN table3 ON table3.table2_id == table2.id WHERE table2.id = 123 如果我得到了正确的答案(不是我原来的查询;-),这将执行以下操作: 在表1中创建条目,其中
INSERT INTO table1 (table2_id, a_field)
SELECT table2.id as table2_id, table3.a_field
FROM table2
INNER JOIN table3 ON
table3.table2_id == table2.id
WHERE table2.id = 123
如果我得到了正确的答案(不是我原来的查询;-),这将执行以下操作:
- 在
中创建条目,其中表1
- 名为
的字段将与table2\u id
中一行的table2
匹配,并且id
- 名为
的字段将与a_字段
中一行a_字段
中的相同命名字段匹配,并且表3
- 从中读取这些值的
/table2
对象由共享的table3
/table2.id
关系以及table3.table\u id2
table2
标识为id
123
我不知道如何将这样的“计算”字段值传递给
create()
或get\u或\u create()
style命令。使用Q()
对象是否可能?Django模型是一个ORM框架。
在某种程度上,你需要
def batch_save_entity2():
entity2 = Table2Entity.objects.get('123')
entity1 = Table1Entity()
entity1.table2_id = entity2.id
entity1.a_field = entity2.entity3.a_field
entity1.save()
from django.db import connection
def my_custom_sql(self):
with connection.cursor() as cursor:
cursor.execute('''
INSERT INTO table1 (table2_id, a_field)
SELECT table2.id as table2_id, table3.a_field
FROM table2
INNER JOIN table3 ON
table3.table2_id == table2.id
WHERE table2.id = 123''')