我正在使用manage.py runserver
命令在Windows XP上使用Django进行开发来提供文件。 Apache没有涉及。当我登录管理并尝试删除文件时,出现“SuspiciousOperation”错误。
这是追溯:
http://dpaste.com/123112/
这是我的完整模特:
http://dpaste.com/hold/123110/
如何摆脱这个“SuspiciousOperation”错误?
编辑:以下是我的媒体设置:
MEDIA_ROOT = 'C:/Server/Projects/postnzb/static/'
MEDIA_URL = '/static/'
答案 0 :(得分:5)
MEDIA_ROOT
中的settings.py
是什么?从后跟踪开始,您似乎已将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}
的{{1}}然后MEDIA_URL
delete()
您将delete()
的超级File
方法调用为super(File, self).delete()
的方法显然是错误的,因为它会尝试删除File.nzb
并尝试通过MEDIA_URL
。修复将摆脱错误。我将把确切的解决方案作为练习留给你:)