def post(self, id): import os, static, hashlib from models import StoryAuthor, Story, StoryDocument from django.template.defaultfilters import slugify from google.appengine.runtime.apiproxy_errors import RequestTooLargeError content = self.request.get('content') title = self.request.get('title') story = Story.get_by_id(int(id, 10)) story.content = content story.title = title story.put() try: request_document = self.request.get('document') document_file = self.request.POST['document'] if request_document: document_body = document_file.value document_digest = hashlib.sha1(document_body).hexdigest() split_name = os.path.splitext(os.path.basename(document_file.filename)) filename = slugify(split_name[0]) or document_digest document_name = filename + split_name[1] document_path = '/story/%d/document/%s/%s' % (story.key().id(), document_digest, document_name) logging.info(document_path) story_document = StoryDocument(story=story, path=document_path, name=document_name) story_document.put() document = static.set(document_path, document_body, document_file.type) self.get(id) except RequestTooLargeError, message: self.render_to_response("story_edit.html", story=Story.get_by_id(int(id, 10)), request_too_large_error=True)
def post(self): import os, static, hashlib from models import StoryAuthor, Story, StoryDocument from django.template.defaultfilters import slugify from google.appengine.runtime.apiproxy_errors import RequestTooLargeError title = self.request.get('title') content = self.request.get('content') full_name = self.request.get('full_name') mobile_number = self.request.get('mobile_number') email = self.request.get('email') author = StoryAuthor(full_name=full_name, email=email, mobile_number=mobile_number) author.put() story = Story(title=title) if content: story.content = content story.author = author story.put() try: request_document = self.request.get('document') if request_document: document_file = self.request.POST['document'] document_body = document_file.value document_digest = hashlib.sha1(document_body).hexdigest() split_name = os.path.splitext(os.path.basename(document_file.filename)) filename = slugify(split_name[0]) or document_digest document_name = filename + split_name[1] document_path = '/story/%d/document/%s/%s' % (story.key().id(), document_digest, document_name) logging.info(document_path) story_document = StoryDocument(story=story, path=document_path, name=document_name) story_document.put() document = static.set(document_path, document_body, document_file.type, name=document_name) self.render_to_response("thanks/story.html", document=story_document, story=story) else: self.render_to_response("thanks/story.html", story=story) except RequestTooLargeError, message: from api_preferences import facebook as fb_prefs, google_friend_connect as gfc self.render_to_response("start.html", FACEBOOK_API_KEY=fb_prefs.get('api_key'), FACEBOOK_CROSS_DOMAIN_RECEIVER_URL=fb_prefs.get('cross_domain_receiver_url'), GOOGLE_FRIEND_CONNECT_SITE_ID=gfc.get('site_id'), request_too_large_error=True, title=title, content=content, full_name=full_name, email=email, mobile_number=mobile_number)