示例#1
0
def edit_personal_blog(request, user_id):
    # users can only edit their own blogs, of course
    if request.user.id != int(user_id):
        raise Http404

    # user is saving the form
    if request.POST:
        form = BlogForm(request.POST)
        if form.is_valid():
            try:
                blog = Blog.objects.get(user=request.user)
                blog.url = form.cleaned_data["url"]
                blog.rss = form.cleaned_data["rss"]
            except Blog.DoesNotExist:
                blog = Blog(
                    user=request.user, url=form.cleaned_data["url"], rss=form.cleaned_data["rss"], from_feed=True
                )
            blog.save()

        # prevent form resubmission on refresh by redirecting
        from observatory.dashboard.views import users

        return HttpResponseRedirect(reverse(users.profile, args=(request.user.id,)))

    # displaying the initial form, or a form from an already created blog
    else:
        try:
            form = BlogForm(instance=Blog.objects.get(user=request.user))
        except Blog.DoesNotExist:
            form = BlogForm()

    return render_to_response(
        "blogs/edit-personal-blog.html", {"form": form, "user": request.user}, context_instance=RequestContext(request)
    )
示例#2
0
def blog(request):
    # get the whole blog list (TODO: pagination)
    if request.method == 'GET':
        return render(request, 'dashboard/blog.html', {'blogs': request.user.blog_set.all()})
    # create a new blog
    elif request.method == 'POST' and '_method' not in request.POST:
        blog_form = BlogForm(request.POST, request.FILES)
        if blog_form.is_valid():
            blog_instance = blog_form.save(commit=False)
            blog_instance.user = request.user
            blog_instance.save()
        return render(request, 'dashboard/blog.html',
                      {'blogs': request.user.blog_set.all(), 'error_messages': blog_form.errors.iteritems()})
    # update an existing blog
    elif request.method == 'POST' and '_method' in request.POST and request.POST['_method'] == 'put':
        blog_instance = Blog.objects.get(id=request.GET['id'])
        blog_form = BlogForm(request.POST, instance=blog_instance)
        if blog_form.is_valid():
            blog_form.save()
        return render(request, 'dashboard/blog.html',
                      {'blogs': request.user.blog_set.all(), 'error_messages': blog_form.errors.iteritems()})
    # delete an existing blog
    elif request.method == 'POST' and '_method' in request.POST and request.POST['_method'] == 'delete':
        blog_instance = Blog.objects.get(id=request.GET['id'])
        blog_instance.delete()
        return redirect('dashboard:blog')
示例#3
0
def edit_personal_blog(request, user_id):
    # users can only edit their own blogs, of course
    if request.user.id != int(user_id):
        raise Http404

    # user is saving the form
    if request.POST:
        form = BlogForm(request.POST)
        if form.is_valid():
            try:
                blog = Blog.objects.get(user=request.user)
                blog.url = form.cleaned_data['url']
                blog.rss = form.cleaned_data['rss']
            except Blog.DoesNotExist:
                blog = Blog(user=request.user,
                            url=form.cleaned_data['url'],
                            rss=form.cleaned_data['rss'],
                            from_feed=True)
            blog.save()

        # prevent form resubmission on refresh by redirecting
        from observatory.dashboard.views import users
        return HttpResponseRedirect(
            reverse(users.profile, args=(request.user.id, )))

    # displaying the initial form, or a form from an already created blog
    else:
        try:
            form = BlogForm(instance=Blog.objects.get(user=request.user))
        except Blog.DoesNotExist:
            form = BlogForm()

    return render_to_response("blogs/edit-personal-blog.html", {
        "form": form,
        "user": request.user,
    },
                              context_instance=RequestContext(request))