def dealWithArticle(request, post_id=0): ''' если post_id = 0 => аргумент был не передан и мы создаем статью иначе редактируем статью с id = post_id надо будет прикрутить куки, чтобы... после редактирования статьи возвращать на страницу, откуда статья редактировалась. а после создания статьи возвращать страницу новосозданной статьи ''' if post_id == 0: #добавление статьи mode = 0 else: #редактирование статьи mode = 1 try: article = Article.objects.get(pk = post_id) article_form = ArticleForm(instance = article) article = article_form.save(commit = False) except Article.DoesNotExist: article = Article() if request.POST: post = request.POST.copy() new_article_form = ArticleForm(post) if new_article_form.is_valid(): new_article = new_article_form.save(commit = False) article.title = new_article.title article.bb_text = new_article.bb_text article.main_text = render_bbcode(new_article.bb_text) article.desc_text = render_bbcode(get_desc(new_article.bb_text)) article.pub_date = timezone.now() article.is_big = is_big(article.main_text) article.save() return HttpResponseRedirect(reverse('blog.views.post',kwargs={'post_id':article.id})) else: return render_to_response('article_form.html',{'article_form': new_article_form, 'mode':mode, 'url_ref': ref_for_article_form}, context_instance=RequestContext(request)) else: #добавляем статью if mode == 0: article_form = ArticleForm() return render_to_response('article_form.html',{'article_form': article_form, 'mode':mode, 'url_ref': ref_for_article_form}, context_instance=RequestContext(request)) if mode == 1: return render_to_response('article_form.html',{'article_form': article_form, 'mode':mode, 'url_ref': ref_for_article_form, 'article_id':article.id}, context_instance=RequestContext(request))