def addPost(request): context = RequestContext(request) posted = False if request.method == 'POST': newPost = Post() newPost.title = request.POST['title'] newPost.url = request.POST['url'] newPost.author = request.user newPost.pub_date = datetime.now() newPost.body = request.POST['content'] print newPost.body newPost.views = 0; titles = Post.objects.all().filter(title = request.POST['title']) if titles: return HttpResponse("The title is already is use") else: newPost.save() posted = True #return HttpResponseRedirect('/blog/') return render_to_response('blog/rand.html', {'posted': posted}, context)
def post_edit(request, slug): if request.user.has_perm('change_post'): t = loader.get_template('blog/edit_post.html') from datetime import datetime form_errors = [] # list to store form error messages # if the slug is 'NEW-POST', this is a new post if slug == 'NEW-POST': post = Post() post.slug_for_form = "NEW-POST" post.pub_date = datetime.now() else: try: post = Post.objects.get(slug=slug) post.slug_for_form = post.slug except: post = False updated = False # if this is a form post, get the posted values if request.POST: post.title = request.POST['post_title'] if post.title == '': form_errors.append('You must provide a post title') # get the slug value from the form - if it doesn't # match the value from the URI, it will need to be changed post.slug = request.POST['post_slug'] # TODO: check slug doesn't already exist # create a slug from the post title if there isn't one provided if post.slug == '': slug = post.title slug = slug.replace(' ', '-') slug = slug.replace('(', '') slug = slug.replace(')', '') slug = slug.lower() # TODO: run this string through a method to replace all but specified character set. post.slug = slug date_string = request.POST['post_pub_date'] try: post.pub_date = datetime.strptime(date_string, '%d/%m/%Y') except: form_errors.append('You must provide a valid date in the format dd/mm/yyyy') post.body = request.POST['post_body'] # TODO - more validation.. if len(form_errors) == 0: post.save() post.slug_for_form = post.slug updated = True # if the request was made via AJAX - return 1 as a success code # TODO: handle failures and pass form errors back as JSON if request.is_ajax(): return HttpResponse('1') template_vars = { 'slug': slug, 'post' : post, 'updated' : updated, 'form_errors' : form_errors } template_vars.update(common_template_vars) c = RequestContext(request, template_vars) return HttpResponse(t.render(c)) else: return HttpResponse('user not authenticated, or does not have permission to edit the post');