Generate the ObjectId() manually instead of via .save()
authorChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 11 Aug 2011 02:03:16 +0000 (21:03 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 11 Aug 2011 02:03:16 +0000 (21:03 -0500)
mediagoblin/submit/views.py

index ba13b755ce12f5a811d9a3fcd2af5c57ea9152d5..a3a58400571921903c356359d3ee06cd6f085572 100644 (file)
@@ -20,6 +20,7 @@ from string import split
 
 from werkzeug.utils import secure_filename
 
+from mediagoblin.db.util import ObjectId
 from mediagoblin.util import (
     render_to_response, redirect, cleaned_markdown_conversion, \
     convert_to_tag_list_of_dicts)
@@ -51,6 +52,7 @@ def submit_start(request):
 
             # create entry and save in database
             entry = request.db.MediaEntry()
+            entry['_id'] = ObjectId()
             entry['title'] = (
                 request.POST['title']
                 or unicode(splitext(filename)[0]))
@@ -66,10 +68,6 @@ def submit_start(request):
             entry['tags'] = convert_to_tag_list_of_dicts(
                                 request.POST.get('tags'))
 
-            # Save, just so we can get the entry id for the sake of using
-            # it to generate the file path
-            entry.save(validate=False)
-
             # Generate a slug from the title
             entry.generate_slug()