def add_blogpost(request):
    if request.method == 'POST':
        form = BlogPostForm(request.POST, request.FILES)
        if form.is_valid():
            form = form.save(commit = False)
            form.author = request.user
            from django.utils.text import slugify
            form.slug = slugify(form.title)
            form.save()
            return HttpResponseRedirect(reverse('BlogPost List', args = []))
    else:
        form = BlogPostForm()
    return render(request, 'blogs/new_blogpost.html', {'form':form})
Пример #2
0
 def get(self, request):
     """
     Muestra el formulario para crear un post
     :param request: objeto HttpRequest
     :return: HttpResponse con la respuesta
     """
     form = BlogPostForm(request)
     context = {'form': form}
     context['title'] = "Create a new Post"
     context['claim'] = 'Write an amazing post'
     return render(request, 'blogs/new-post.html', context)
Пример #3
0
def blog_index(request, slug):
    """Содерижмое блога"""
    form = BlogPostForm(request.POST or None)
    blog = get_object_or_404(Blog, slug=slug)

    if request.method == "POST":
        if not blog.permissions.can_post(request.user):
            return HttpResponseForbidden(u"Пользователь {0} не может постить в блог \"{1}\".".format(
                request.user.username, blog.title
            ))
        if form.is_valid():
            post = form.save(commit=False)
            post.blog = blog
            post.author = request.user
            post.save()
            form.save_m2m()
            form = BlogPostForm()
            request.flash['message'] = _(u'Пост добавлен.')

    posts = BlogPost.objects.filter(blog__pk=blog.pk).order_by('-created')[:settings.POSTS_PER_PAGE]
    return direct_to_template(request, 'blogs/blog.html', dict(
        blog=blog,
        posts=posts,
        form=form,
        user_can_post=blog.permissions.can_post(request.user)
    ))
def update_blogpost(request, slug):
    blogpost = get_object_or_404(BlogPost, slug=slug)
    if request.method == 'POST':
        form = BlogPostForm(request.POST, request.FILES, instance = blogpost)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('BlogPost Detail',
             kwargs = {'slug':slug}))

    else:
        form = BlogPostForm(instance = blogpost)
    return render(request, 'blogs/new_blogpost.html', {'form':form})
Пример #5
0
def post_edit(request, blog_pk, post_pk):
    post = get_object_or_404(BlogPost, blog__pk=blog_pk, pk=post_pk)
    form = BlogPostForm(request.POST or None, instance=post)
    saved = False
    if request.method == 'POST' and form.is_valid():
        if not post.permissions.can_edit(request.user):
            return HttpResponseForbidden(
                u'Пользователь {0} не может редактировать пост \"{1}\" блога \"{2)\".'.format(
                    request.user.username,
                    post.pk,
                    post.blog.slug
                ))
        post = form.save(commit=False)
        post.save()
        form.save_m2m()
        form = BlogPostForm(instance=post)
        request.flash['message'] = _(u'Пост сохранен.')
    return direct_to_template(request, "blogs/post_edit.html", dict(
        form=form,
        post=post,
        saved=saved
    ))
Пример #6
0
 def post(self, request):
     """
     Procesa el formulario para crear un post
     :param request: objeto HttpRequest
     :return: HttpResponse con la respuesta
     """
     blogpost = BlogPost()
     blogpost.owner = request.user
     form = BlogPostForm(request, request.POST, request.FILES, instance=blogpost)
     if form.is_valid():
         # creamos el blog
         form.save()
         # limpiar el formulario
         BlogPostForm(request)
         # Devolvemos un mensaje de OK
         messages.success(request, 'Post created correctly')
         return redirect('blogs')
     context = {'form': form}
     context['title'] = "Create a new Post"
     context['claim'] = 'Write an amazing post'
     messages.error(request, 'Post could not be created. Please check fields')
     return render(request, 'blogs/new-post.html', context)