2009-11-15 19 views
1

所以,我在這裏拉我的頭髮,也許有人有洞察力。Django:調試條目只是消失

我有一個cronjob,它遍歷我所有的Link對象,做了一些事情,可能會改變對象的屬性,並做一個save()。而已。

每隔一段時間(大約每小時一次),我的一行就會消失。噗。日誌中沒有任何內容。

所以,我試圖在所有地方都添加調試語句,但是有沒有明顯的理由讓它進入disapear?通過調用delete()刪除條目的唯一方法是?

只要任何一般的走向將是美好的,謝謝。

一些想法我有:

  • 混帳推而的cronjob運行
  • 一些級聯刪除被消滅之
  • 一些Django的方法是調用刪除異常
+1

一般的答案是,「這是一個神祕的事。」如果沒有看到cron作業代碼和模型代碼,我認爲沒有人會對此有所瞭解。 – hughdbrown 2009-11-15 15:52:47

+0

難道是當cronjob做的東西,它不保存一些對象?也許你缺少一些條件。 – Geo 2009-11-15 16:45:47

回答

1

您可以使用django-loggingLOGGING_LOG_SQL = True來記錄所有的SQL,以便查看是否有任何DELETE正在發生。

+0

耶!這是一個級聯刪除。謝謝! – 2009-11-15 19:41:35

2

您可以覆蓋Link類的delete方法並轉儲堆棧跟蹤或記錄消息以查看它是否確實發生在您的Django應用程序中。

import sys, traceback 

def delete(self): 
    super(Link, self).delete() 

    try: 
     assert False 
    except AssertionError, e 
     traceback.print_tb(file=sys.stdout) 

可能有更好的方法來獲取和記錄堆棧跟蹤,但這是首先想到的。