我正在使用django_extensions TimeStampedModel,它提供了一個modified
字段,該字段通過pre_save
事件自行設置。這是偉大的,除了我轉換舊的架構,並希望保留原始的modified
datestamp。我怎樣才能修改,避免,取消或用另一個值替換pre_save的修改?在Django中,我如何避免/跳過/撤銷預存事件?
回答
你不能。不是你問的意義。
你可以創建一個虛假的字段並將其填充到clean()
。
Class MyModel(models.Model):
def clean(self):
self._modified = self.modified
...
@receiver(pre_save, sender=MyModel)
def receiver_(self, *args, **kwargs):
self.modified = self._modified
因此,您正在備份字段值並在以後放回。 筆記:確保您的應用程序加載後。
「確保您的應用程序稍後加載」比什麼? – 2014-09-24 17:50:02
我試過這樣做,它在另一個'pre_save'之前運行......我如何影響順序? – 2014-09-24 17:54:07
您不能影響訂單。認爲它是執行代碼。您必須以某種方式確保應用程序的代碼稍後運行*,而不是時間戳擴展*,因此調用應用程序的「connect」(信號)代碼在時間戳擴展中調用connect的代碼之後調用。 – 2014-09-24 18:10:22
最後,我只是做了一個首尾循環:
from django.db import connection
cursor = connection.cursor()
cursor.execute("update %s set modified='%s' where id=%s" % (
my_model._meta.db_table, desired_modified_date, my_model.id))
- 1. 如何避免keyup事件的連續ajax請求的開銷?
- 2. 避免在for循環中跳過迭代時存儲空值
- 3. 避免/跳過刪除形狀在visio
- 4. 如何在JavaScript中處理撤銷/重做事件?
- 5. 如何避免在python中遷移django
- 6. 如何避免在Django中增加url
- 7. 如何避免預編譯頭文件
- 8. 如何避免2.0安裝過程中註銷mscoree 2.4?
- 9. 在PowerPoint中宏結束撤銷事務
- 10. 如何避免在使用多個意圖時跳過活動?
- 11. 如何避免或跳過testng或reportng報告中的測試
- 12. 如何撤銷中間文件刪除
- 13. 如何避免多次註冊事件
- 14. 如何避免直接致電事件?
- 15. 避免遺漏值之後跳過線
- 16. 如何避免在我的Django模板中重複字符串?
- 17. Angular.js:我如何避免緩存服務?
- 18. 撤銷iOS證書撤銷
- 19. 在Vim中跳過撤消步驟
- 20. 我如何避免在UITableView中
- 21. 如何讓git cvsimport避免跳過補丁集?
- 22. 避免回發GridView事件
- 23. 如何避免mysql緩存
- 24. Django - 如何避免在Django模板中使用「request.META.HTTP_HOST」?
- 25. 避免C#JIT開銷
- 26. 如何避免在Jquery中選擇項目時更改事件?
- 27. 如何避免UIImageViews在Touch事件中重疊?
- 28. 在Django中,{{block.super}}存在問題,我如何避免在多個模板文件中重複一個`block`?
- 29. 撤銷Chrome許可 - 存儲文件
- 30. 如何在jsp中銷燬會話並避免返回
如果一個pre_save信號已創建的,你能不能 - 也許傳遞kwarg不覆蓋時間戳?或者,如果它是第三方應用程序的信號,就不要這麼做,用自定義代碼創建自己的代碼 - 免責聲明 - 這只是一個想法。我可能會理解你正在嘗試做什麼.. – karthikr 2014-09-24 18:04:09