我正在使用manage.py runserver
命令在Windows XP上开发Django来提供文件。 Apache不参与。 当我loginpipe理并尝试删除文件时,出现“SuspiciousOperation”错误。
这是追溯:
http://dpaste.com/123112/
这是我的完整模型:
http://dpaste.com/hold/123110/
我怎样才能摆脱这个“SuspiciousOperation”错误?
编辑:这是我的媒体设置:
MEDIA_ROOT = 'C:/Server/Projects/postnzb/static/' MEDIA_URL = '/static/'
settings.py
的MEDIA_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()
方法中调用超类File
( super(File, self).delete()
的delete()
方法,这显然是错误的,因为它会尝试删除File.nzb
,并将尝试通过MEDIA_URL
访问文件。 修复,将摆脱错误。 我将把确切的解决方案作为一个练习给你:)