def edit_news(id): form = NewsForm() if request.method == "GET": session = db_session.create_session() news = session.query(News).filter(News.id == id, News.user == current_user).first() if news or current_user.is_admin: form.title.data = news.title form.description.data = news.description form.content.data = news.content form.tags.data = news.tags form.is_private.data = news.is_private else: abort(404) if form.validate_on_submit(): session = db_session.create_session() news = session.query(News).filter(News.id == id, News.user == current_user).first() if news or current_user.is_admin: news.title = form.title.data news.content = form.content.data news.is_private = form.is_private.data session.commit() return redirect('/') else: abort(404) return render_template('adding.html', form=form)
def edit_news(request, post_id): market_item = get_object_or_404(MarketItem.objects.defer('comments'), pk=post_id) if market_item.owner != request.user: return HttpResponseForbiden() form = NewsForm(request.POST or None, instance=market_item) if request.method == 'POST' and form.is_valid(): save_market_item(form, request.user) related_post_url = form.cleaned_data.get('related_post_url') if related_post_url: post_id = related_post_url.split('/')[-1] market_item.add_related_post(post_id, request.user) return redirect(reverse('show_post', args=[market_item.id])) else: form.fields[ 'news_url'].initial = market_item.marketnewsitemdata.original_url related_post = market_item.marketitemrelatedpost_set.last() if related_post: market_item_url = settings.BASE_URL + reverse( 'show_post', args=[related_post.related_market_item.id]) form.fields['related_post_url'].initial = market_item_url return render_to_response('market/create_news.html', { 'form': form, 'news_item': market_item.marketnewsitemdata }, context_instance=RequestContext(request))
def create(request, template="news/create.html"): #if def get_slug(text, numb=0): "Create unique slug" if numb: text += "_%d" % numb s = slugify(text) try: News.objects.get(slug=s) return get_slug(text, numb + 1) except News.DoesNotExist: pass return s u = request.user if request.POST: n = News(author=u, show=False, slug=get_slug(request.POST['title'])) f = NewsForm(request.POST, instance=n) if f.is_valid(): n = f.save() return HttpResponseRedirect(n.get_absolute_url() + "show/") else: f = NewsForm() return render_to_response(template, { "form": f, }, context_instance=RequestContext(request))
def index(): form = NewsForm() if form.validate_on_submit(): n1 = News(title=form.title.data, body=form.body.data) db.session.add(n1) db.session.commit() return redirect(url_for('index')) news_list = News.query.all() return render_template('index.html', news_list=news_list, form=form)
def post(self): form = NewsForm(**self.request.POST) if not form.validate(): self.request.response.status = 400 return {'form': form} obj = models.News() form.populate_obj(obj) self.db.add(obj) transaction.commit() return HTTPCreated()
def put(self): form = NewsForm(**self.request.POST) if not form.validate(): self.request.response.status = 400 return {'form': form} obj = self.get_object(self.request.matchdict['id']) form.populate_obj(obj) self.db.add(obj) transaction.commit() return HTTPNoContent()
def add(): """ 新增新闻 """ form = NewsForm() if form.validate_on_submit(): n1 = News(title=form.title.data, content=form.content.data, img_url=form.img_url.data, news_type=form.news_type.data) n1.save() flash("新增成功") return redirect(url_for('admin')) return render_template("admin/add.html", form=form)
def create(request): if request.method == 'POST': form = NewsForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('administration_news_index')) else: form = NewsForm() return direct_to_template(request, 'news/administration/news_create.html', {'form': form, 'active_module': 'news'})
def news_post(): form = NewsForm() if form.validate_on_submit(): news = News(view = 0, title = form.title.data,url = form.url.data,hot = False) try: news.put() flash(u'저장 성공', 'success') return redirect(url_for('new_list')) except CapabilityDisabledError: flash(u'App Engine Datastore is currently in read-only mode.', 'failure') return redirect(url_for('new_list')) return render_template('news_post.html', form=form,title= request.args.get('title'), url= request.args.get('url'))
def add_news(): form = NewsForm() if form.validate_on_submit(): session = db_session.create_session() news = News() news.title = form.title.data news.content = form.content.data news.is_private = form.is_private.data current_user.news.append(news) session.merge(current_user) session.commit() return redirect('/blog') return render_template('add_news.html', title='News add', form=form)
def savenews(request): if request.POST and ("pause" not in request.session): form = NewsForm(request.POST) if form.is_valid(): comment = form.save(commit=False) now = timezone.now() comment.article_date = now # comment.comments_article = Article.objects.get(id=article_id) form.save() # request.session.set_expiry(60) # request.session['pause'] = True return redirect('/news/')
def news_post(): form = NewsForm() if form.validate_on_submit(): news = News(view = 0, title = form.title.data,url = form.url.data,hot = False) try: news.put() search.Index(name=_INDEX_NAME).add(create_doc(news.key.id(),news.title,news.url,news.post_time)) flash(u'저장 성공', 'success') return redirect(url_for('new_list')) except CapabilityDisabledError: flash(u'App Engine Datastore is currently in read-only mode.', 'failure') return redirect(url_for('new_list')) return render_template('news_post.html', form=form,title= request.args.get('title'), url= request.args.get('url'),counter=counter.load_and_get_count("view"),acc=ACC)
def create_news(request): form = NewsForm(request.POST or None) if form.is_valid(): post = save_market_item(form, request.user) news_item = post.generate_news_item(form.cleaned_data.get('news_url')) post.title = news_item.title post.save() related_post_url = form.cleaned_data.get('related_post_url') if related_post_url: post_id = related_post_url.split('/')[-1] post.add_related_post(post_id, request.user) return redirect(reverse('show_post', args=[post.id])) return render_to_response('market/create_news.html', {'form': form}, context_instance=RequestContext(request))
def edit(request, news_id): news = get_object_or_404(News, id=news_id) if request.method == 'POST': form = NewsForm(request.POST, instance=news) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('administration_news_index')) else: form = NewsForm(model_to_dict(news),instance=news) return direct_to_template(request, 'news/administration/news_edit.html', {'form': form, 'news':news, 'active_module': 'news'})
def add(): # 新增 form = NewsForm() if form.validate_on_submit(): # 获取数据 -> 保存数据 new_obj = News(title=form.title.data, content=form.content.data, types=form.types.data, image=form.image.data, created_at=datetime.now()) db.session.add(new_obj) db.session.commit() return redirect(url_for('admin')) return render_template('admin/add.html', form=form)
def create_news(request): if request.method == 'POST': news_form = NewsForm(request.POST,prefix='news_form') news_content_forms = [] for lang in settings.LANGUAGES: news_content_forms.append({ 'form':NewsContentForm(request.POST,prefix='news_content' + lang[0]), 'lang':lang[0] }) if news_form.is_valid(): valid = False for news_content_form in news_content_forms: valid = news_content_form['form'].is_valid() if not valid: break if valid: news = news_form.save(commit=False) if 'news_form_avatar' in request.FILES: try: avatar_img_name = handle_uploaded_file(request.FILES['news_form_avatar']) except IOError as e: return HttpResponse(u'Возникла ошибка при загрузке аватарки:' + e.message) news.avatar_img_name = avatar_img_name news.save() for news_content_form in news_content_forms: news_content = news_content_form['form'].save(commit=False) news_content.lang = news_content_form['lang'] news_content.news = news news_content.save() return redirect('news:administration:news_list') else: news_form = NewsForm(prefix="news_form") news_content_forms = [] for lang in settings.LANGUAGES: news_content_forms.append({ 'form':NewsContentForm(prefix='news_content' + lang[0]), 'lang':lang[0] }) return render(request, 'news/administration/create_news.html', { 'news_form': news_form, 'news_content_forms': news_content_forms, })
def update(pk): ''' 后台更新新闻 ''' obj = News.objects.filter(pk=pk, is_valid=True).first_or_404() # obj = News.objects.get_or_404(pk=pk, is_valid=True) form = NewsForm(obj=obj) if form.validate_on_submit(): obj.title = form.title.data obj.content = form.content.data obj.news_type = form.news_type.data obj.updated_at = datetime.now() obj.save() flash("修改成功") return redirect(url_for('admin')) return render_template('admin/update.html', form=form)
def update(pk): ''' 修改新闻数据 也可通过update进行逻辑删除,更改对象的is_valid属性 ''' new_obj = News.objects.get_or_404(pk=pk) form = NewsForm(obj=new_obj) if form.validate_on_submit(): new_obj.title = form.title.data new_obj.content = form.content.data new_obj.news_type = form.news_type.data new_obj.img_url = form.image.data new_obj.save() flash('修改新闻成功') return redirect(url_for('admin')) #返回修改html,获取用户输入的表单信息 return render_template('admin/update.html', form=form)
def new_news(request): news_form = NewsForm() if request.method == 'POST': news_form = NewsForm(request.POST, request.FILES) if news_form.is_valid(): news = news_form.save() return render_to_response( 'news_saved.html', {'news': news} ) return render_to_response( 'edit_news.html', {'news_form': news_form} )
def network_dashboard_news_add(request): from atrinsic.base.models import News from forms import NewsForm if request.method == 'POST': form = NewsForm(request.POST) if form.is_valid(): News.objects.create(news_status=form.cleaned_data['news_status'], data=form.cleaned_data['data'], viewed_by=form.cleaned_data['viewed_by']) return HttpResponseRedirect('/network/dashboard/news/') else: form = NewsForm() return AQ_render_to_response(request, 'network/news-add.html', { 'form' : form, }, context_instance=RequestContext(request))
def update(pk): """ 新增新闻 """ obj = News.objects.filter(pk=pk).first() if obj is None: abort(404) form = NewsForm(obj=obj) if form.validate_on_submit(): obj.title = form.title.data obj.content = form.content.data obj.news_type = form.news_type.data obj.save() flash("修改成功") return redirect(url_for('admin')) return render_template("admin/update.html", form=form)
def update(pk): ''' 后台更新新闻 ''' news_obj = query.get_news_from_id(pk) if news_obj is None: abort(404) form = NewsForm(data=news_obj) if form.validate_on_submit(): news_obj['title'] = form.title.data news_obj['content'] = form.content.data news_obj['news_type'] = form.news_type.data news_obj['updated_at'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") query.update_news(pk, news_obj) flash("修改成功") return redirect(url_for('admin')) return render_template('admin/update.html', form=form)
def edit(request, slug, template="news/create.html"): n = get_object_or_404(News, slug=slug) u = request.user if not (u is n.author or u.has_perm("news.can_edit")): return HttpResponseRedirect(request.META['HTTP_REFERER'] or "/news/") if request.POST: f = NewsForm(request.POST, instance=n) if f.is_valid(): n = f.save() return HttpResponseRedirect(n.get_absolute_url() + "show/") else: f = NewsForm(instance=n) return render_to_response(template, { "form": f, }, context_instance=RequestContext(request))
def update_news(request, news_title): news = News.objects.get(title=news_title) news_form = NewsForm(instance=news) if request.method == 'POST': news_form = NewsForm(request.POST, request.FILES) if news_form.is_valid(): news = news_form.save() return render_to_response( 'news_saved.html', {'news': news} ) return render_to_response( 'edit_news.html', {'news_form': news_form} )
def add(): ''' 新增新闻数据 ''' form = NewsForm() if form.validate_on_submit(): # 从前台表单中获取表单值组成的对象 new_obj = News( title=form.title.data, content=form.content.data, news_type=form.news_type.data, img_url=form.image.data, ) new_obj.save() flash('新增新闻成功') return redirect(url_for('admin')) return render_template('admin/add.html', form=form)
def add_news(request): try: if 'login' in request.session: if request.method == 'POST': form = NewsForm(request.POST) if form.is_valid(): news = form_news(form.cleaned_data, request.session['login']) news.save() return redirect('index') else: form = NewsForm() return render(request, 'add_news.html', RequestContext(request, {'form': form})) else: raise ValueError except(AttributeError, ValueError): raise Http404
def update(pk): # 新闻后台数据修改 news_obj = News.query.get(pk) # 如果没有数据,则返回 if not news_obj: return redirect(url_for('admin')) form = NewsForm(obj=news_obj) if form.validate_on_submit(): # 获取数据 news_obj.title = form.title.data news_obj.content = form.content.data # 保存数据 db.session.add(news_obj) db.session.commit() return redirect(url_for('admin')) return render_template('admin/update.html', form=form)
def news_add(): form = NewsForm() form.created_at.data = datetime.now() try: if form.validate_on_submit(): news = News(form.title.data, form.content.data, form.types.data, form.img_url.data, form.author.data, form.view_count.data, form.created_at.data, form.is_valid.data, form.is_recommend.data) db.session.add(news) db.session.commit() flash('添加新闻成功!') return redirect(url_for('admin.news_detail')) except: flash('添加新闻失败!', category='error') return render_template('admin/news_add.html', form=form)
def add(): ''' 后台增加新闻 ''' news_obj = {} form = NewsForm() if form.validate_on_submit(): news_obj['title'] = form.title.data news_obj['content'] = form.content.data news_obj['img_url'] = form.img_url.data news_obj['is_valid'] = 1 news_obj['news_type'] = form.news_type.data news_obj['created_at'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") news_obj['updated_at'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") query.add_news_with_trans(news_obj) flash("修改成功") return redirect(url_for('admin')) return render_template('admin/add.html', form=form)
def add(): form = NewsForm() if form.validate_on_submit(): n1 = News( title=form.title.data, content=form.content.data, image=form.image.data, type=form.type.data, author=form.author.data, created_at=datetime.now(), ) db.session.add(n1) db.session.commit() flash('新增成功') return redirect(url_for('admin')) return render_template('admin/add.html', form=form)
def update(pk): """ add news """ obj = News.query.get(pk) if obj is None: abort(404) form = NewsForm(obj=obj) if form.validate_on_submit(): obj.title = form.title.data obj.content = form.content.data obj.news_type = form.news_type.data db.session.add(obj) db.session.commit() flash("Successfully modified") return redirect(url_for('admin')) return render_template("admin/update.html", form=form)
def add(): """ 新增新闻 """ form = NewsForm() if form.validate_on_submit(): n1 = News( title=form.title.data, content=form.content.data, img_url=form.img_url.data, news_type=form.news_type.data, created_at=datetime.now(), updated_at=datetime.now(), ) db.session.add(n1) db.session.commit() flash("Successfully added!") return redirect(url_for('admin')) return render_template("admin/add.html", form=form)
def add(): ''' 后台增加新闻 ''' form = NewsForm() """ validate_on_submit() call validate() only if the form is submitted. This is a shortcut for form.is_submitted() and form.validate(). """ if form.validate_on_submit(): print(form.title.data) new_obj = News(title=form.title.data, content=form.content.data, img_url=form.img_url.data, news_type=form.news_type.data) new_obj.save() flash('新增成功') return redirect(url_for('admin')) return render_template('admin/add.html', form=form)
def add_post(): form = NewsForm() if form.validate_on_submit(): session = db_session.create_session() news = News() news.title = form.title.data news.description = form.description.data news.content = form.content.data news.tags = form.tags.data news.is_private = form.is_private.data date = datetime.date.today() news.created_date = date current_user.news.append(news) session.merge(current_user) session.commit() return redirect("/") return render_template('adding.html', form=form)
def create_news(request): if request.method == 'POST': news_form = NewsForm(request.POST,prefix='news_form') news_content_forms = [] for lang in settings.LANGUAGES: news_content_forms.append({ 'form':NewsContentForm(request.POST,prefix='news_content' + lang[0]), 'lang':lang[0] }) if news_form.is_valid(): valid = False for news_content_form in news_content_forms: valid = news_content_form['form'].is_valid() print valid if not valid: break if valid: news = news_form.save(commit=False) news.save() for news_content_form in news_content_forms: news_content = news_content_form['form'].save(commit=False) news_content.lang = news_content_form['lang'] news_content.news = news news_content.save() return redirect('professionals_news:administration:news_list') else: news_form = NewsForm(prefix="news_form") news_content_forms = [] for lang in settings.LANGUAGES: news_content_forms.append({ 'form':NewsContentForm(prefix='news_content' + lang[0]), 'lang':lang[0] }) return render(request, 'professionals_news/administration/create_news.html', { 'news_form': news_form, 'news_content_forms': news_content_forms, })
def update(pk): # 更新一条新闻 new_obj = News.query.get(pk) # 如果没有取到数据,跳转后台管理页面 if not new_obj: return redirect(url_for('admin')) # 修改前的记录渲染出来 form = NewsForm(obj=new_obj) if form.validate_on_submit(): # 获取数据 new_obj.title = form.title.data new_obj.content = form.content.data new_obj.types = form.types.data # 更改记录 db.session.add(new_obj) db.session.commit() return redirect(url_for('admin')) return render_template('admin/update.html', form=form)
def add(): """ 新增新闻 """ form = NewsForm() news_obj = {} # 空的字典保存前台的表单数据 if form.validate_on_submit(): """ 这个和更新新闻相反, 我们空的一个form来让用户新增,然后提交获得表单保存到数据库,重定向到首页""" news_obj['title'] = form.title.data news_obj['content'] = form.content.data news_obj['news_type'] = form.news_type.data news_obj['created_at'] = datetime.now().strftime( '%Y-%m-%d %H:%M:%S') # 由于是新增,所以保存新增和更新时间 news_obj['updated_at'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S') news_obj['is_valid'] = True news_obj['img_url'] = form.image.data query.add_news(news_obj) flash('新增成功') return redirect(url_for('admin')) return render_template("admin/add.html", form=form)
def update(pk): '''修改新闻信息''' new_obj = News.query.get(pk) # 如果没有数据,则返回404 Not Found if new_obj is None: abort(404) form = NewsForm(obj = new_obj) if form.validate_on_submit(): new_obj.title = form.title.data new_obj.content = form.content.data new_obj.types = form.news_type.data new_obj.image = form.image.data db.session.add(new_obj) db.session.commit() flash('修改成功') return redirect(url_for('admin')) return render_template('admin/update.html', form = form)
def add_news(request): if request.method == 'POST': news_form = NewsForm(request.POST, request.FILES) if news_form.is_valid(): news_form.save() return HttpResponseRedirect('/admin_forms/') else: degree_values = Degree.objects.values('name').distinct() event_form = EventForm() directory_form = DirectoryForm() news = NewsArticle.objects.all() events = Event.objects.all() return render(request, 'admin_forms.html', {'degree_values': degree_values, 'news_form': news_form, 'event_form': event_form, 'directory_form': directory_form, 'news_class': "active", 'all_news': news, 'all_events': events}) else: return HttpResponseBadRequest("THE REQUESTED URL IS INVALID")
def update(pk): ''' 后台新闻修改 ''' obj = News.query.get(pk) # 为给定的状态码引发HTTPExeception if obj is None: abort(404) form = NewsForm(obj=obj) if form.validate_on_submit(): obj.title = form.title.data obj.content = form.content.data obj.type = form.type.data # 将修改后的对象提交事务 db.session.add(obj) db.session.commit() flash("修改成功") # 跳转到首页 return redirect(url_for('admin')) return render_template('admin/update.html', form = form)
def network_dashboard_news_add(request): from atrinsic.base.models import News from forms import NewsForm if request.method == 'POST': form = NewsForm(request.POST) if form.is_valid(): News.objects.create(news_status=form.cleaned_data['news_status'], data=form.cleaned_data['data'], viewed_by=form.cleaned_data['viewed_by']) return HttpResponseRedirect('/network/dashboard/news/') else: form = NewsForm() return AQ_render_to_response(request, 'network/news-add.html', { 'form': form, }, context_instance=RequestContext(request))
def add(): '''新闻新增''' form = NewsForm() if form.validate_on_submit(): # 获取用户输入表达中的数据 # 保存数据 n1 = News( title = form.title.data, content = form.content.data, image = form.image.data, types = form.news_type.data, created_at = datetime.now(), is_valid = 1) db.session.add(n1) db.session.commit() # 文字提示flash flash('新增成功!') return redirect(url_for('admin')) #新增加入数据库之后重定向到首页 return render_template('admin/add.html', form = form)
def add(): ''' 新增新闻数据 ''' form = NewsForm() if form.validate_on_submit(): # 获取数据 new_obj = News(title=form.title.data, content=form.content.data, author=form.author.data, types=form.types.data, image=form.image.data, created_at=datetime.now(), is_valid=True) # 保存数据 db.session.add(new_obj) db.session.commit() # 文字提示 # flash return redirect(url_for('admin')) # 跳转到后台首页 return render_template('admin/add.html', form=form)
def update(pk): ''' 修改新闻数据 ''' new_obj = News.query.get(pk) # 如果没有数据,则返回 if not new_obj: # TODO 使用Flash进行文字提示用户 return redirect(url_for('admin')) form = NewsForm(obj=new_obj) if form.validate_on_submit(): # 获取数据 new_obj.title = form.title.data new_obj.content = form.content.data new_obj.types = form.types.data new_obj.image = form.image.data # 保存数据 db.session.add(new_obj) db.session.commit() return redirect(url_for('admin')) # 跳转到后台首页 return render_template('admin/update.html', form=form)
def edit_news(request, post_id): market_item = get_object_or_404(MarketItem.objects.defer('comments'), pk=post_id) if market_item.owner != request.user: return HttpResponseForbiden() form = NewsForm(request.POST or None, instance=market_item) if request.method == 'POST' and form.is_valid(): save_market_item(form, request.user) related_post_url = form.cleaned_data.get('related_post_url') if related_post_url: post_id = related_post_url.split('/')[-1] market_item.add_related_post(post_id, request.user) return redirect(reverse('show_post', args=[market_item.id])) else: form.fields['news_url'].initial = market_item.marketnewsitemdata.original_url related_post = market_item.marketitemrelatedpost_set.last() if related_post: market_item_url = settings.BASE_URL + reverse('show_post', args=[related_post.related_market_item.id]) form.fields['related_post_url'].initial = market_item_url return render_to_response('market/create_news.html', {'form': form, 'news_item': market_item.marketnewsitemdata}, context_instance=RequestContext(request))
def network_dashboard_news_edit(request, id): from atrinsic.base.models import News from forms import NewsForm news = get_object_or_404(News, id=id) if request.method == 'POST': form = NewsForm(request.POST) if form.is_valid(): news.news_status = form.cleaned_data['news_status'] news.data = form.cleaned_data['data'] news.viewed_by = form.cleaned_data['viewed_by'] news.save() return HttpResponseRedirect('/network/dashboard/news/') else: form = NewsForm(initial=news.__dict__) return AQ_render_to_response(request, 'network/news-edit.html', { 'news' : news, 'form' : form, }, context_instance=RequestContext(request))
def create_news(request): if request.method == 'POST': news_form = NewsForm(request.POST,prefix='news_form') if news_form.is_valid(): news = news_form.save(commit=False) if 'news_form_avatar' in request.FILES: avatar_img_name = handle_uploaded_file(request.FILES['news_form_avatar']) news.avatar_img_name = avatar_img_name news.save() if 'save_edit' in request.POST: return redirect('news:administration:edit_news', news.id) else: return redirect('news:administration:news_list') else: news_form = NewsForm(prefix="news_form") return render(request, 'news/administration/create_news.html', { 'news_form': news_form, })
def artiststracks3(request): from pyechonest import * if request.method == 'POST': form = NewsForm(request.POST) if form.is_valid(): the_news = [] a = form.cleaned_data['artist_name'] artist_results = artist.search(name=a) b = artist_results[0] artist_blogs = b.blogs for blog in artist_blogs: the_news.append([blog.get('name'), blog.get('date_posted')]) data = {'the_news': the_news} print data return render(request, "postlogin/artiststracks3b.html", data) else: form = NewsForm() data = {'form': form} return render(request, 'postlogin/artiststracks3.html', data)
def read_news(request, news_id): try: news = News.objects.get(pk=news_id) if not news: raise ValueError if 'login' in request.session: if request.method == 'POST': form = NewsForm(request.POST) if form.is_valid(): news = form_news(form.cleaned_data, news.news_author) news.save() return redirect('index') else: form = NewsForm(initial = {'title': news.news_title, 'text': news.news_text}) context = RequestContext(request, {'form': form}) else: context = RequestContext(request, {'news': news}) context.update({'id': news.id}) return render(request, 'read_news.html', context) except(AttributeError, ValueError): raise Http404
def edit_news(request, id): news = get_object_or_404(News, id=id) if request.method == 'POST': news_form = NewsForm(request.POST,prefix='news_form', instance=news) if news_form.is_valid(): news = news_form.save(commit=False) if 'news_form_avatar' in request.FILES: if news.avatar_img_name: handle_uploaded_file(request.FILES['news_form_avatar'], news.avatar_img_name) else: avatar_img_name = handle_uploaded_file(request.FILES['news_form_avatar']) news.avatar_img_name = avatar_img_name news.save() if 'save_edit' in request.POST: return redirect('news:administration:edit_news', news.id) else: return redirect('news:administration:news_list') else: news_form = NewsForm(prefix="news_form", instance=news) return render(request, 'news/administration/edit_news.html', { 'news_form': news_form, })
def edit_news(request, id): news = get_object_or_404(News, id=id) news_contents = NewsContent.objects.filter(news=news) news_contents_langs = {} for lang in settings.LANGUAGES: news_contents_langs[lang] = None for news_content in news_contents: news_contents_langs[news_content.lang] = news_content if request.method == 'POST': news_form = NewsForm(request.POST,prefix='news_form', instance=news) if news_form.is_valid(): news_form.save() news_content_forms = [] for lang in settings.LANGUAGES: lang = lang[0] if lang in news_contents_langs: news_content_forms.append({ 'form':NewsContentForm(request.POST,prefix='news_content_' + lang, instance=news_contents_langs[lang]), 'lang':lang }) else: news_content_forms.append({ 'form':NewsContentForm(request.POST, prefix='news_content_' + lang), 'lang':lang }) valid = False for news_content_form in news_content_forms: valid = news_content_form['form'].is_valid() if not valid: break if valid: for news_content_form in news_content_forms: news_content = news_content_form['form'].save(commit=False) news_content.news = news news_content.lang = news_content_form['lang'] news_content.save() return redirect('news:administration:news_list') else: news_form = NewsForm(prefix="news_form", instance=news) news_content_forms = [] for lang in settings.LANGUAGES: lang = lang[0] if lang in news_contents_langs: news_content_forms.append({ 'form':NewsContentForm(prefix='news_content_' + lang, instance=news_contents_langs[lang]), 'lang':lang }) else: news_content_forms.append({ 'form':NewsContentForm(prefix='news_content_' + lang), 'lang':lang }) return render(request, 'news/administration/edit_news.html', { 'news_form': news_form, 'news_content_forms': news_content_forms, })