def test_adding_slug(self):
     data = {
         "title": "test post title",
         "author": self.user,
         "body": "test body",
         "pub_date_0": "2010-12-21",
         "pub_date_1": "13:00:00",
         "blogs": [self.blog.id],
     }
     form = PostForm(data)
     self.assertTrue(form.is_valid())
     form.instance.author = self.user
     form.save()
     post = Post.objects.get(slug="test-post-title")
 def test_slug_uniqueness(self):
     data = {
         "title": "test post title",
         "author": self.user,
         "body": "test body",
         "pub_date_0": "2010-12-21",
         "pub_date_1": "13:00:00",
         "blogs": [self.blog.id],
     }
     form = PostForm(data)
     form.instance.author = self.user
     form.save()
     data["title"] = "test.-post title"
     data["pub_date_1"] = "11:50:00"
     form = PostForm(data)
     self.assertFalse(form.is_valid())
     self.assertEqual(form.errors["title"], ["Title must be unique for date."])
def edit_blog_post(request, **kwargs):
    username = kwargs.get('author')
    if username:
        # a username kwarg implies that the URL is for an existing post,
        # i.e. this is an update, not an insert
        author = get_object_or_404(User, username=username)
        if not author == request.user and not request.user.is_superuser:
            raise Http404
        instance = _get_post_or_404(author, kwargs.get('year'),
            kwargs.get('month'), kwargs.get('day'), kwargs.get('slug'))
    else:
        instance = None
    if request.method == 'POST':
        post_form = PostForm(request.POST, instance=instance)
        if post_form.is_valid():
            if not instance:
                post_form.instance.author = request.user
            post = post_form.save()
            return HttpResponseRedirect(post.get_absolute_url())
    else:
        post_form = PostForm(instance=instance)
    return render_to_response('dogood/post_edit.html', {'post_form': post_form}, RequestContext(request))