Django子查询插入

时间:2013-10-30 15:10:46

标签: django subquery django-orm

当我尝试插入一些值时,是否可以强制django创建子查询? 这会产生两个单独的查询:

CommunicationLog.objects.create(
    device='asdfasdf', 
    date_request=CommunicationLog.objects.get(pk=343).date_request, 
    content_obj_id=338, type_request=1, type_change=2
)

2 个答案:

答案 0 :(得分:3)

使用create绝对无法做到这一点。没有可用的API可以让你这样做,因为这是非常不寻常的用例。你必须回到原始的sql。

答案 1 :(得分:0)

即使API不能让你做你想做的事,你仍然可以通过在查询日期时使用.only方法来提高性能(我假设是你的意图):

CommunicationLog.objects.create(
    device='asdfasdf', 
    date_request=CommunicationLog.objects.only('date_request').get(343).date_request, 
    content_obj_id=338, type_request=1, type_change=2
)