0
在MySQL,SQL表達式低於:如何通過使用django orm使一個字段值等於同一個表中的另一個字段值?
udpate table set one_field=another_field
那麼如何讓它使用Django的ORM的成功?例如:
在模型A中,有3個字段:ID,a_value 在模型B中,有3個字段:ID,b_value 現在我想要b_value的值等於a_value加b_value。表達應該是這樣的:b_value = b_value + a_value
。但是django orm中的F()不能用於不同的模型。我如何通過在較少的代碼中使用django orm來實現這一點。順便說一下,我的數據有點大,大約2000k。
謝謝。我認爲F就是我想要的。我的數據非常大。 – no13bus 2014-11-25 07:56:45
但在文檔中,它表示:如果嘗試使用F()對象引入連接,將引發FieldError。當我更新我的字段時,它使用其他表的字段值。是否還有其他更好的方法來解決此問題?謝謝。 – no13bus 2014-11-25 08:42:33
基本上,用F(),你只能更新那些在一個Django模型中的字段。只要「one_field」和「another_field」都在同一個模型中,F()就可以工作。但是,如果您嘗試根據「Model_2」中的「another_field」的值更新「Model_1」中的「one_field」,那麼F()將不起作用,因爲它不支持連接。那麼您可能有(): obj.one_field = obj.another_field obj.save()'this這個方法在我的答案中使用了我在建議的方法中使用的方法 – Ymartin 2014-11-25 09:07:02