def create_topic(request, forum, topic=None): from forms import TopicForm, PostForm, AddPostForm, EditPostForm from django import forms forum = get_object_or_404(Forum, active=True, slug=forum) if request.method == "GET": if topic: topic = get_object_or_404(Topic, id=topic) apf = EditPostForm(topic=topic, instance=topic.get_body) else: apf = AddPostForm() return render(request, "forum/create_topic.html", { "forum" : forum, "apf" : apf, }) if request.method == "POST": ip = request.META.get('HTTP_X_FORWARDED_FOR', None) post_form_kwargs = { "forum" : forum, "user" : request.user, "ip" : ip, } apf = AddPostForm(request.POST, **post_form_kwargs) if apf.is_valid(): url = reverse('forum:forum', args=[str(forum.slug),]) apf.save() return redirect(url) else: return HttpResponse("Invalid")
def create_topic(request, forum, topic=None): from forms import TopicForm, PostForm, AddPostForm, EditPostForm from django import forms forum = get_object_or_404(Forum, active=True, slug=forum) if request.method == "GET": if topic: topic = get_object_or_404(Topic, id=topic) apf = EditPostForm(topic=topic, instance=topic.get_body) else: apf = AddPostForm() return render(request, "forum/create_topic.html", { "forum": forum, "apf": apf, }) if request.method == "POST": ip = request.META.get('HTTP_X_FORWARDED_FOR', None) post_form_kwargs = { "forum": forum, "user": request.user, "ip": ip, } apf = AddPostForm(request.POST, **post_form_kwargs) if apf.is_valid(): url = reverse('forum:forum', args=[ str(forum.slug), ]) apf.save() return redirect(url) else: return HttpResponse("Invalid")
def edit_post(request, post_id): # Obtain the instance of the post instance = Post.objects.get(id=post_id) # Get the context from the request. context = RequestContext(request, { 'p' : instance, }) # A HTTP POST? if request.method == 'POST': form = EditPostForm(request.POST, instance=instance) # Have we been provided with a valid form? if form.is_valid(): # Save the new category to the database. form.save(commit=True) # User show the post that they just edited return HttpResponseRedirect('/posts/'+str(post_id)) else: # The supplied form contained errors - just print them to the terminal. print form.errors else: # If the request was not a POST, display the form to enter details. form = PostForm(instance=instance) # Bad form (or form details), no form supplied... # Render the form with error messages (if any). return render_to_response('posts/edit_post.html', {'form': form}, context)
def edit_post(key): post = ndb.Key(urlsafe=key).get() form = EditPostForm(obj=post) if form.validate_on_submit(): form.save() flash(u'文章修改成功') return go_delay_redirect(url_for("admin.post.edit", key=key)) return render_template('admin/new_or_edit_post.html', form=form, post=post, new=False)
def edit_post(request,tid=0,pid=0): tag = get_object_or_404(Tag,pk=1) user = get_object_or_404(User,pk=1) topic = get_object_or_404(Topic,pk=tid) post = get_object_or_404(Post,pk=pid) if request.method == "POST": f = EditPostForm(request.POST,topic=topic,post=post,user = user) if f.is_valid(): edit_post = f.save() ##return HttpResponseRedirect('../') return HttpResponseRedirect(reverse(index)) else: f = EditPostForm(post=post,topic=topic) args = {} args.update(csrf(request)) args['form'] = f return render_to_response('post.html',args)