def get_detail(request, blog_id): try: blog = models.Blog.objects.get(id=blog_id) except Blog.DoesNotExist: raise Http404 if request.method == 'GET': # 加载评论表单 form = forms.CommentForm() else: # 评论提交的数据 form = forms.CommentForm(request.POST) if form.is_valid(): cleaned_data = form.cleaned_data cleaned_data['blog'] = blog models.Comment.objects.create(**cleaned_data) form = forms.CommentForm() ctx = { 'blog': blog, 'comments': blog.comment_set.all().order_by('-created'), 'form': form } return render(request, 'blog-detail.html', ctx)
def view_post(request, pk): post = get_object_or_404(models.Post, pk=pk) context = {'post': post} comment_form = forms.CommentForm() if request.user.is_authenticated: comment_form.initial = { 'full_name': request.user.get_full_name(), 'email': request.user.email } if request.method == 'POST': comment_form = forms.CommentForm(request.POST) if comment_form.is_valid(): models.Comment.objects.create( full_name=comment_form.cleaned_data.get('full_name'), email=comment_form.cleaned_data.get('email'), text=comment_form.cleaned_data.get('text'), post=post, ) messages.success(request, 'نظر شما پس از تایید قابل مشاهده خواهد بود.') return redirect(reverse('view_post', kwargs={'pk': pk})) else: messages.error(request, 'لطفاً اشکالات فرم را برطرف کنید.') context['comment_form'] = comment_form return render(request, 'post.html', context)
def addCommentToPost(request, pk): post = get_object_or_404(models.Post, pk=pk) if request.method == 'POST': form = forms.CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.save() return redirect('postDetailView', pk=pk) else: form = forms.CommentForm() return render(request, 'blog/post_detail.html', {'form': form})
def add_comment_to_post(request, pk): post = get_object_or_404(models.Post, pk=pk) if request.method == 'POST': form = forms.CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.save() return redirect('post_detail', pk=post.pk) # try only pk no change else: form = forms.CommentForm() return render(request, 'blog/comment_form.html', {'form': form})
def post_comment(request, post_pk): """ This function to be used if you want to post comment and then rel- -oad page immediately and show the new comment """ post = get_object_or_404(models.Post, pk=post_pk) form = forms.CommentForm() if request.method == 'POST': form = forms.CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.save() return HttpResponseRedirect(post.get_absolute_url())
def comment_update(request, *args, **kwargs): comment = get_object_or_404(models.Comment, pk=kwargs['comment_id']) if not common.has_perm(request, constants.PERMISSION_COMMENT_EDIT, post=comment.post, author=kwargs['author']): raise PermissionDenied form = forms.CommentForm(request.POST or None) status = form['status'].data if not status: return JsonResponse({ 'status': 11, 'message': _('Input Error'), }) comment.status = int(status) comment.save() logging.getLogger(constants.OPERATION_LOG).info({ 'post': comment.post.id, 'comment': comment.id }) return JsonResponse({ 'status': 1, 'data': { 'status': comment.status, 'status_name': str(models.CommentStatus(comment.status)) }, 'message': _('COMMENT_UPDATED'), }) # codeend:comment_update
def post(self, request, *args, **kwargs): parent = self.get_object() if request.POST.get('like'): # ADD/REMOVE LIKE assert False, "LIKE" else: # ADD COMMENT form = forms.CommentForm(request.POST) if not form.is_valid(): return JsonResponse( { 'errors': json.loads(form.errors.as_json()), }, status=400) form.instance.post = parent form.instance.user = request.user form.save() if request.is_ajax(): # return JsonResponse({'status': 'ok'}) return render(request, "blog/_comment.html", { 'comment': form.instance, }) messages.success(request, "Comments saved.") return redirect(parent)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) dict = { 'form': forms.CommentForm(), } context.update(dict) return context
def AddCommentView(request): #判断登录者身份 if request.method == "POST": comment_form = forms.CommentForm(request.POST) a={} if comment_form.is_valid(): id = comment_form.cleaned_data['blog'] # print(id,type(id),id.id) name = comment_form.cleaned_data['name'] con = request.POST.get('content') content = con.replace("\r\n", "<br/>") new_comment = models.Comment() new_comment.name = name new_comment.content = content new_comment.blog_id = id.id new_comment.save() # comment_form.save() a['status'] = 'success' a["comments"] = serializers.serialize("json", models.Comment.objects.filter(blog_id=id)) a["comments_count"] = models.Comment.objects.filter(blog_id=id).count() return JsonResponse(a) # return HttpResponse('%s'%a, content_type='application/json') else: mes="检查用户名、内容是否符合要求:不得为空、字数不得超出限制" a['status'] = 'false' a['message'] = mes return JsonResponse(a)
def reply(request, *args, **kwargs): parent = get_object_or_404(models.Comment, pk=kwargs['comment_id']) if not common.has_perm(request, constants.PERMISSION_COMMENT_REPLY, post=parent, author=kwargs['author']): raise PermissionDenied form = forms.CommentForm(request.POST or None) if not form.is_valid(): return JsonResponse({ 'status': 11, 'message': _('Input Error'), }) comment = form.save(commit=False) comment.post = parent.post comment.parent = parent comment.client_text = get_client_ip(request)[0] comment.save() logging.getLogger(constants.OPERATION_LOG).info({ 'post': parent.post.id, 'parent': parent.id }) return JsonResponse({ 'status': 1, 'message': _('REPLY_REGISTERED'), })
def detail(request, id): try: model = models.Post.objects.get(id=id) except Exception: raise Http404() if request.method == 'POST': form = forms.CommentForm(request.POST) if form.is_valid(): form.save() return redirect('blog-detail', id=id) else: form = forms.CommentForm(initial={'post': model}) return render(request, 'blog/detail.html', { 'title': model.title, 'model': model, 'form': form })
def add_comment_to_post(request, pk): post = get_object_or_404(models.Post, pk=pk) if request.method == 'POST': form = forms.CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.save() return redirect(reverse('blog:post_detail', kwargs={'pk': post.pk})) else: form = forms.CommentForm() return render(request, 'blog/comment_form.html', {'form': form})
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) pid = kwargs['pid'] context['pid'] = pid context['post'] = Post.objects.get(id=pid) context['comments'] = Comment.objects.filter( post_id=pid).order_by('-creation_date') context['comment_form'] = forms.CommentForm() return context
def post(self, request, *args, **kwargs): form = forms.CommentForm(request.POST) pid = kwargs['pid'] if form.is_valid(): comment_obj = form.save(commit=False) comment_obj.post_id = pid comment_obj.author_id = request.user.id comment_obj.save() else: print(form.errors) context = self.get_context_data(**kwargs) return super(TemplateView, self).render_to_response(context)
def post(self, request): next = request.POST.get('next', '/') text = request.POST.get('content') if not self.request.user.is_authenticated: return redirect('%s?next=%s' % (settings.LOGIN_URL, next)) form = forms.CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.user = request.user comment.article = models.Article.objects.get( pk=request.POST['article_pk']) comment.save() return HttpResponseRedirect(next)
def post(self, request, article_id): """ 以post提交是处理评论的 """ post = Post.objects.filter(id=article_id).first() form = forms.CommentForm(request.POST) if form.is_valid(): comment = form.cleaned_data['comment'] name = form.cleaned_data['name'] if not name: name = '无名氏' comment = Comment(name=name, text=comment, post=post) comment.save() url = reverse('blog:article', kwargs={'article_id': article_id}) return redirect(url)
def detail(request, id): try: model = models.Post.objects.get(id=id) except Exception: raise Http404() form = forms.CommentForm(request.POST if request.method == 'POST' else {'post': model}) if form.is_valid(): # .save() masuk kedatabase form.save() return redirect('blog-detail', id=id) return render(request, 'blog/detail.html', { 'title': model.title, 'model_baru': model, 'form': form })
def get_context_data(self, **kwargs): data = super().get_context_data(**kwargs) authorized = self.request.user.is_authenticated if 'pk' in self.kwargs: article = self.model.objects.get(pk=self.kwargs['pk']) else: print("BKJBJKBKJBKJBJKB") article = self.model.objects.get(slug=self.kwargs['slug']) if authorized: num_results = models.Like.objects.filter(user=self.request.user, article=article).count() else: num_results = 0 text = self.request.GET.get('text', '') data['comment_form'] = forms.CommentForm(initial={'content': text}) data['already_liked'] = num_results data['authorized'] = authorized return data
def comment(request, *args, **kwargs): post = get_object_or_404(models.Post, pk=kwargs['post_id']) if not post.is_comment or not post.is_comment_entry: raise PermissionDenied form = forms.CommentForm(request.POST or None) if not form.is_valid(): return JsonResponse({ 'status': 11, 'message': _('Input Error'), }) comment = form.save(commit=False) comment.post = post comment.client_text = get_client_ip(request)[0] comment.save() mails.comment_notification(request, comment) logging.getLogger(constants.OPERATION_LOG).info({'post': post.id}) return JsonResponse({ 'status': 1, 'message': _('COMMENT_REGISTERED'), })
def get_context_data(self, **kwargs): context = super(DetailView, self).get_context_data(**kwargs) init_data = {} if self.request.user.is_authenticated(): init_data['name'] = self.request.user.get_full_name( ) or self.request.user.username init_data['email'] = self.request.user.email else: init_data['name'] = self.request.session.get("name", "") init_data['email'] = self.request.session.get("email", "") init_data['url'] = self.request.session.get("url", "") blog = context['blog'] reply_to_list = [ temp.pk for temp in Comment.objects.filter(comment_for=blog.pk) ] comment_f = myforms.CommentForm() comments = Comment.objects.filter(comment_for=blog, is_spam=False) payload = {'comments': comments, 'comment_form': comment_f} comment_f.fields['reply_to'].queryset = Comment.default.filter( pk__in=reply_to_list) context.update(payload) return context
def post(self, *args, **kwargs): self.object = self.get_object() request = self.request context = self.get_context_data(object=self.object) comment_f = myforms.CommentForm(self.request.POST) if comment_f.is_valid(): # (1,2,3).append(5) comment = Comment() post_data = comment_f.cleaned_data comment.text = post_data['text'] comment.reply_to = post_data['reply_to'] comment.email_id = post_data['email_id'] comment.comment_for = self.object comment.user_name = post_data['user_name'] comment.user_url = post_data['user_url'] comment.user_ip = request.META['REMOTE_ADDR'] comment.user_agent = request.META['HTTP_USER_AGENT'] comment.is_public = getattr(settings, 'AUTO_APPROVE_COMMENTS', True) comment.save() return HttpResponseRedirect('#comment-%s' % comment.pk) context.update({'comment_form': comment_f}) return self.render_to_response(context)
def test_either1(self): """何も入力しなければエラーになることを検証""" params = dict() blog = models.Comment() form = forms.CommentForm(params, instance=blog) self.assertFalse(form.is_valid())
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['comment_form'] = forms.CommentForm(None) logging.getLogger(constants.OPERATION_LOG).info({'post':self.object.id}) return context
def get_context_data(self, **kwargs): d = super().get_context_data(**kwargs) d['form'] = forms.CommentForm() return d
def test_valid(self): """正常な入力を行えばエラーにならないことを検証""" params = dict(comment="test", post=1) comment = models.Comment() form = forms.CommentForm(params, instance=comment) self.assertTrue(form.is_valid())