2009-02-20 48 views
2

我正在使用manage.py runserver命令爲Windows XP上的Django開發文件。 Apache不參與。當我登錄管理並嘗試刪除文件時,出現「SuspiciousOperation」錯誤。刪除上傳文件時出現Django「SuspiciousOperation」錯誤

這裏的回溯:
http://dpaste.com/123112/

這裏是我的完整模型:
http://dpaste.com/hold/123110/

我怎樣才能擺脫這種 「SuspiciousOperation」 的錯誤?

編輯:這裏是我的媒體設置:

MEDIA_ROOT = 'C:/Server/Projects/postnzb/static/' 
MEDIA_URL = '/static/' 

回答

5

什麼是你在settings.pyMEDIA_ROOT?從後面的追蹤中,您似乎已將您的MEDIA_ROOT設置爲/static/

由於Django嘗試訪問無法訪問的/static/,因此出現此錯誤。爲MEDIA_ROOT設置絕對路徑名,如C:/Documents/static/,並授予Django訪問該目錄的完全權限。

這應該解決您的問題。

附錄:既然你MEDIA_ROOT似乎是好了,我猜您正在使用MEDIA_URL刪除的文件,而不是MEDIA_ROOT。的確,從錯誤看來,Django試圖訪問/static/files/8.nzb並被拒絕訪問。顯然,/static/是你的MEDIA_URL而不是你的MEDIA_ROOT。模型方法不應該嘗試使用MEDIA_URL訪問文件。我相信對您的代碼進行審查會發現錯誤。

更新:我脫脂你的代碼,它似乎要設置File.nzb%(1)sfiles/%(2)s.nzb' % {'1': settings.MEDIA_URL, '2': self.pk}它採用了MEDIA_URL然後在delete()方法,你所呼叫的超一流的Filedelete()方法super(File, self).delete()這顯然是錯誤因爲它會嘗試刪除File.nzb,並嘗試通過MEDIA_URL訪問該文件。解決這個問題將擺脫錯誤。我會將確切的解決方案作爲練習留給你:)

+0

我已將我的媒體設置添加到我的問題描述中。實際上,MEDIA_ROOT是絕對路徑。 – 2009-02-20 20:17:00