def blog_add(request): if request.user.is_authenticated(): if request.method == 'POST': form = BlogForm(request.POST) tag = TagForm(request.POST) if form.is_valid() and tag.is_valid(): cd = form.cleaned_data cdtag = tag.cleaned_data tagname = cdtag['tag_name'] for taglist in tagname.split(): Tag.objects.get_or_create(tag_name=taglist.strip()) title = cd['caption'] author = Author.objects.get(id=1) content = cd['content'] blog = Blog(caption=title, author=author, content=content) blog.save() for taglist in tagname.split(): blog.tags.add(Tag.objects.get(tag_name=taglist.strip())) blog.save() id = Blog.objects.order_by('-id')[0].id return HttpResponseRedirect('/blog/%s' % id) else: form = BlogForm() tag = TagForm() return render_to_response('blog_add.html', {'form': form, 'tag': tag}, context_instance=RequestContext(request)) else: raise Http404
def blog_update(request, id=""): if request.user.is_authenticated(): id = id if request.method == 'POST': form = BlogForm(request.POST) tag = TagForm(request.POST) if form.is_valid() and tag.is_valid(): cd = form.cleaned_data cdtag = tag.cleaned_data tagname = cdtag['tag_name'] tagnamelist = tagname.split() for taglist in tagnamelist: Tag.objects.get_or_create(tag_name=taglist.strip()) title = cd['caption'] content = cd['content'] blog = Blog.objects.get(id=id) if blog: blog.caption = title blog.content = content blog.save() for taglist in tagnamelist: blog.tags.add(Tag.objects.get(tag_name=taglist.strip())) blog.save() tags = blog.tags.all() for tagname in tags: tagname = unicode(str(tagname), "utf-8") if tagname not in tagnamelist: notag = blog.tags.get(tag_name=tagname) blog.tags.remove(notag) else: blog = Blog(caption=blog.caption, content=blog.content) blog.save() return HttpResponseRedirect('/blog/%s' % id) else: try: blog = Blog.objects.get(id=id) except Exception: raise Http404 form = BlogForm(initial={'caption': blog.caption, 'content': blog.content}, auto_id=False) tags = blog.tags.all() if tags: taginit = '' for x in tags: taginit += str(x) + ' ' tag = TagForm(initial={'tag_name': taginit}) else: tag = TagForm() return render_to_response('blog_add.html', {'blog': blog, 'form': form, 'id': id, 'tag': tag}, context_instance=RequestContext(request)) else: raise Http404