2
保存模型時,避免多次查詢,讓我們假設我有3種型號:一個,乙,Ç,與具有兩個一個和外鍵關係Ç B。 如何在保存C模型時如何避免多個查詢?如果我有必要的信息來檢索A和B?Django的ORM:與外鍵關係
目前我的代碼是一樣的東西:
a = A.objects.get(title='the title', platform='the platform')
b = A.objects.get(id='the id')
C.objects.update_or_create(a=a, b=b, defaults={'c_param_1':'value'})
這吮吸,因爲它至少執行3個查詢(4如果C對象不存在)。 我想檢索a和b在db層...如何使用Django的ORM實現?
我目前試圖以這種方式用Q對象:
C.objects.update_or_create(
a=Q(a__title='the title') & Q(a__platform='the platform'),
b=Q(b__id='the id'),
c_param_1='value'
)
,但我得到:
TypeError: int() argument must be a string or a number, not 'Q'
PS:我使用Django 1.7