示例#1
0
文件: views.py 项目: imindrajit/blog
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)
示例#2
0
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');