2015-05-27 81 views
0

批量更新我有3種型號:相關車型

class Model1: 
    ... 

class Model2: 
    ... 
    m1 = ForeignKey(Model1) 
    var2 = .... 

class Model3: 
    ... 
    m2 = ForeignKey(Model2) 
    var3 

我試圖更新Model3:

Model1.objects.get(...).model2_set.filter(....).update(... How to update all model3_set__var3? ....???) 
+0

我會需要一些示例查詢來給出一個很好的答案。然而,作爲一個提示:你想更新'Model3',所以要求'Model3'並且反過來思考:'Model3.objects.filter(m2 __...,m2__m1 __...)。update( ...)'。 – dhke

回答

2

您可以使用關係:

Model3.objects.filter(m2__m2var=1, m2__m1__m1val=1).update(...) 

__用於關係,併爲表連接,所以你可以通過m2__<m2_field>Model2過濾字段,你可以使用外鍵連接和Model1上的過濾字段與m2__m1__<m1_field>

Read the related docs