def new_comment(request, snippet_id): snippet = get_object_or_404(Snippet, pk=snippet_id) form = CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.commented_to = snippet comment.commented_by = request.user comment.save() messages.add_message(request, messages.SUCCESS, "コメントを投稿しました") else: messages.add_message(request, messages.ERROR, "コメントの投稿に失敗しました") return redirect('snippet_detail', snippet_id=snippet_id)
def snippet_detail(request, snippet_id): snippet = get_object_or_404(Snippet, pk=snippet_id) comments = Comment.objects.filter(commented_to=snippet_id).all() comment_form = CommentForm() return render(request, "snippets/snippet_detail.html", { 'snippet': snippet, 'comments': comments, 'form': comment_form, })
def snippet_detail(request, pk): """ render the code to page Show code and add comments """ # old code for posterity # snippet = Snippet.objects.get(id=pk) snippet = get_object_or_404(Snippet, id=pk) if request.method == 'POST': form = CommentForm(data=request.POST) if form.is_valid(): new_comment = form.save(commit=False) new_comment.snippet = snippet new_comment.save() code_lines = snippet.code.split('\n') comments = Comment.objects.filter(snippet=snippet) annotations = Annotation.objects.filter(snippet=snippet) form = CommentForm() ano_form = AnnotationForm() context = { 'snippet': snippet, 'annotations': annotations, 'code_lines': code_lines, 'form': form, 'ano_form': ano_form, 'comments': comments, } return render(request, 'detail.html', context)
def view(request, key): if Snippet.objects.filter(id=key).exists(): snippet = Snippet.objects.get(id=key) form = CommentForm() comments = snippet.comment_set.all() else: raise Http404("Snippet doesn't exist") if request.method == "POST": form = CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.snippet = snippet comment.save() form = CommentForm() comments = snippet.comment_set.order_by('-datetime_created') return render( request, 'snippets/view.html', { 'key': key, 'title': snippet.title, 'content': snippet.content, 'form': form, 'comments': comments })
def landing_page(request): """ get the latest snippet and its comment """ latest = Snippet.objects.latest('created') comment = Comment.objects.filter(snippet=latest) code_lines = latest.code.split('\n') if comment: comment = comment.latest('created') context = { 'latest': latest, 'comment': comment, 'code_lines': code_lines, } else: comment_form = CommentForm() context = { 'latest': latest, 'code_lines': code_lines, 'comment_form': comment_form, } return render(request, 'landing_page.html', context)