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))
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))
def save(self, *args, **kwargs): get_unique_slug(self) self.updated_at = timezone.now() super(Post, self).save(*args, **kwargs)