def _copyArticleToForm(self, article, author=None): """Copy relevant fields from Article to ArticleForm.""" af = ArticleForm() if author: # when author is provided, don't get it by parent key. authorName = author.displayName authorID = author.authorID else: authorName = article.key.parent().get().displayName authorID = article.key.parent().get().authorID for field in af.all_fields(): if hasattr(article, field.name): # convert Date to date string if field.name.startswith('date'): setattr(af, field.name, str(getattr(article, field.name))) # convert view string to Enum elif field.name == 'view': setattr(af, field.name, getattr(View, str(getattr(article, field.name)))) # just copy others else: setattr(af, field.name, getattr(article, field.name)) # add the fields that are not part of the Article model elif field.name == "authorID": setattr(af, field.name, authorID) elif field.name == "articleID": setattr(af, field.name, str(article.key.id())) elif field.name == "websafeArticleKey": setattr(af, field.name, article.key.urlsafe()) elif field.name == "websafeAuthorKey": setattr(af, field.name, article.key.parent().urlsafe()) af.check_initialized() return af
def post(self): article = self.request.POST.get('id') instance = Article.get(article) if article else None data = ArticleForm(data=self.request.POST, instance=instance) if data.is_valid(): entity = data.save(commit=False) if hasattr(self.request.POST.get('img'), 'file'): entity.img = Blob(self.request.POST.get('img').file.read()) entity.put() self.redirect_to("new", message='Статья успешно сохранена!') else: self.response.out.write(render('templates/article.html', {'form': data}))
def create_article(request): articles = Article.all() if request.method == "POST": form = ArticleForm(request.POST) if form.is_valid(): article = Article(title=form.cleaned_data['title'], body=form.cleaned_data['body']) article.put() messages.success(request, 'Article created successful') return redirect('create_article') return render_to_response('create_article.html', dict(articles=articles))
def update_article(request, article_id): article = Article.get_by_id(int(article_id)) articles = Article.all() if request.method == "POST": form = ArticleForm(request.POST) if form.is_valid(): article.title = form.cleaned_data['title'] article.body = form.cleaned_data['body'] article.put() messages.success(request, 'Article updated successfully') return redirect('create_article') return render_to_response('create_article.html', dict(articles=articles, article=article, form_action="edit"))
def admin(request,article,success=False,status=None): try: article = NewsArticle.objects.get(id=article) except NewsArticle.DoesNotExist: return HttpResponseNotFound() if request.method == "POST" and not success: form = ArticleForm(request.POST,instance=article) if form.is_valid(): form.save() success=True status = 'News updated' else: form = ArticleForm(instance=article) return render_to_response("news_adminform.html",{'form' : form,'success' : success,'article' : article,'status' : status},context_instance=RequestContext(request))
def submit_link_detail(request): if request.method == "POST": form = ArticleForm(request.POST) if form.is_valid(): obj = form.save(commit=False) obj.user = request.user obj.save() Vote.objects.record_vote(obj, request.user, +1) if "actstream" in settings.INSTALLED_APPS: action.send(request.user, verb='submitted', target=obj) return redirect("/") else: form = ArticleForm(request.POST) return render(request, "djig/submit_link.html", { "form" : form, }) else: return HttpResponse("You should POST to this page, not GET it.")
def create(request): success = False try: if request.method == "POST": form = ArticleForm(request.POST) if form.is_valid(): try: article = form.save(commit=False) article.user = request.user article.save() except Exception as e: print e success=True return admin(request,article.id,True,'News created') else: form = ArticleForm() return render_to_response("news_createform.html",{'form' : form,'success' : success},context_instance=RequestContext(request)) except Exception as e: print e