2010-11-01 35 views
0

我的模型有以下字段。只要該模型發生變化,它就必須更新。Django - auto_now = True對自定義動作無效

modified_at = models.DateTimeField(auto_now = TRUE)

,我寫了一個自定義的行動,改變這種模式在管理界面的狀態。

對於除了管理界面中提到的自定義操作之外的所有類型的更新,此特定字段均可正常工作。有任何想法嗎?

+0

告訴我們您的自定義操作。它是一個自定義的save()嗎? – chefsmart 2010-11-02 03:21:25

+0

我的自定義如下。 make make_active(modeladmin,request,queryset): queryset.update(status ='a') make_active.short_description =「將所選用戶標記爲活動」 – 2010-11-02 04:48:34

回答

4

您可以在django的文檔中看到update()實際上不會調用save()。因此,這是非常正常的的DateField不受auto_now更新(這將更新上的保存()調用)

http://docs.djangoproject.com/en/1.2/ref/models/querysets/#update-kwargs

+1

是否有任何其他選項可以實現它? – 2010-11-02 16:48:35

+0

你可以使用update(status ='a',modified_at = datetime.now)或類似的東西? – 2010-11-02 16:55:46

+0

您可以手動發送保存信號來觸發任何使用該信號保存時運行的信號。 – 2013-05-23 16:43:27

相關問題