Example #1
0
def create_post(request, slug):
    blog = get_object_or_404(Blog, slug=slug)

    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            slug = generate_slug(post.title)

            conflicts = Post.objects.filter(slug__startswith=slug)
            if conflicts:
                slug = get_unique_slug(slug, conflicts)

            post.slug = slug
            post.author = request.user
            post.blog = blog
            post.save()

            # We don't want to start sending garbage requests while testing,
            # and we only want to do this on the first save of a published post,
            # not every update, otherwise we might get IP banned.
            if not settings.DEBUG:
                post.send_pingbacks()

            return redirect('view_post', post.created.year, post.get_formatted_month(), post.slug)
    else:
        form = PostForm()

    context = {
        'blog': blog,
        'post_form': form,
    }
    return render_to_response('blog/create_post.html', context, RequestContext(request))
Example #2
0
def create_blog(request):
    if request.method == 'POST':
        form = BlogForm(request.POST)
        if form.is_valid():
            blog = form.save(commit=False)
            slug = generate_slug(blog.title)

            conflicts = Blog.objects.filter(slug__startswith=slug)
            if conflicts:
                slug = get_unique_slug(slug, conflicts)

            blog.slug = slug
            blog.owner = request.user
            blog.save()

            return redirect('view_blog', blog.slug)
    else:
        form = BlogForm()

    context = {
        'blog_form': form,
    }
    return render_to_response('blog/create_blog.html', context, RequestContext(request))
Example #3
0
 def save(self, *args, **kwargs):
     get_unique_slug(self)
     self.updated_at = timezone.now()
     super(Post, self).save(*args, **kwargs)