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) )
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')
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))