This commit is contained in:
Ross Lawley 2012-08-24 09:08:35 +01:00
commit 89c67bf259

View File

@ -1324,17 +1324,18 @@ class SequenceField(IntField):
.. versionadded:: 0.5 .. versionadded:: 0.5
""" """
def __init__(self, collection_name=None, db_alias = None, *args, **kwargs): def __init__(self, collection_name=None, db_alias = None, sequence_name = None, *args, **kwargs):
self.collection_name = collection_name or 'mongoengine.counters' self.collection_name = collection_name or 'mongoengine.counters'
self.db_alias = db_alias or DEFAULT_CONNECTION_NAME self.db_alias = db_alias or DEFAULT_CONNECTION_NAME
self.sequence_name = sequence_name
return super(SequenceField, self).__init__(*args, **kwargs) return super(SequenceField, self).__init__(*args, **kwargs)
def generate_new_value(self): def generate_new_value(self):
""" """
Generate and Increment the counter Generate and Increment the counter
""" """
sequence_id = "%s.%s" % (self.owner_document._get_collection_name(), sequence_name = self.sequence_name or self.owner_document._get_collection_name()
self.name) sequence_id = "%s.%s" % (sequence_name, self.name)
collection = get_db(alias=self.db_alias)[self.collection_name] collection = get_db(alias=self.db_alias)[self.collection_name]
counter = collection.find_and_modify(query={"_id": sequence_id}, counter = collection.find_and_modify(query={"_id": sequence_id},
update={"$inc": {"next": 1}}, update={"$inc": {"next": 1}},