Made GridFSProxy a bit stricter / safer

This commit is contained in:
Harry Marr 2010-08-31 00:23:59 +01:00
parent 32e66b29f4
commit 1849f75ad0

View File

@ -511,6 +511,10 @@ class BinaryField(BaseField):
raise ValidationError('Binary value is too long')
class GridFSError(Exception):
pass
class GridFSProxy(object):
"""Proxy object to handle writing and reading of files to and from GridFS
"""
@ -541,12 +545,18 @@ class GridFSProxy(object):
self.grid_id = self.newfile._id
def put(self, file, **kwargs):
if self.grid_id:
raise GridFSError('This document alreay has a file. Either delete '
'it or call replace to overwrite it')
self.grid_id = self.fs.put(file, **kwargs)
def write(self, string):
if not self.newfile:
if self.grid_id:
if not self.newfile:
raise GridFSError('This document alreay has a file. Either '
'delete it or call replace to overwrite it')
else:
self.new_file()
self.grid_id = self.newfile._id
self.newfile.write(string)
def writelines(self, lines):