Ejemplo n.º 1
0
def post_detail(request, post_id):
    pk = post_id
    # try:
    #     post = Post.objects.get(id=pk)
    # except Post.DoesNotExist:
    #     raise Http404('bulunamadı')

    post = get_object_or_404(Post, id=pk, draft=False)
    comments = post.comments.all()
    form = CommentForm(request.POST or None)
    context = {
        'post': post,
        'comments': comments,
        'form': form
    }

    if request.method == 'POST':
        if form.is_valid():
            form.instance.post = post
            form.save()
            messages.add_message(request, messages.SUCCESS,
                                 'Basari ile kayit edildi')

            return redirect('post_detail', post_id=post.id)

    # if request.method == 'POST':
    #     if form.is_valid():
    #         form.instance.post = post
    #         form.save()
    #         messages.add_message(request, messages.SUCCESS,
    #                              'Basarıyla olusturuldu')

    #

    return render(request, 'article/post_detail.html', context)
Ejemplo n.º 2
0
def addcomment(request, article_id):
    if request.POST:
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_article = Article.objects.get(id=article_id)
            form.save()
    return redirect('/article/get/%s/' % article_id)
Ejemplo n.º 3
0
def addcomment(request, article_id):
    if request.POST:
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_article = Article.objects.get(id=article_id)
            form.save()
    return redirect('/articles/get/%s' % article_id)
Ejemplo n.º 4
0
def addcomment(request, article_id):
    if request.POST and ('pause' not in request.session):
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_arcticle = Article.objects.get(id=article_id)
            form.save()
            request.session.set_expiry(60)
            request.session['pause'] = True
    return redirect('/articles/get/%s/' % article_id)
Ejemplo n.º 5
0
def add_comment(request, article_id=1):
    if request.POST and request.session.get("pause", True):
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.article_reference = Article.objects.get(id=article_id)
            form.save()
            request.session.set_expiry(60)
            request.session["pause"] = False
    return redirect(f"/articles/{article_id}/")
Ejemplo n.º 6
0
def addcomment(request, article_id):
	if request.POST and ("pause" not in request.session):
		form = CommentForm(request.POST)
		if form.is_valid():
			comment = form.save(commit=False)
			comment.comments_article = Article.objects.get(id=article_id)
			form.save()
			request.session.set_expiry(60)
			request.session['pause'] = True
	return redirect('/articles/get/%s/'  % article_id)
Ejemplo n.º 7
0
def addcomment(request, article_id):
    if request.POST and ("pause") not in request.session:
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_acticle = Article.objects.get(id = article_id)
            comment.comments_date = datetime.datetime.now()
            form.save()
            request.session.set_expiry(3)
            request.session['pause'] = True

    return redirect("/get/%s" % article_id)
Ejemplo n.º 8
0
 def post(self, request, *args, **kwargs):
     if 'pause' not in request.session:
         comment_form = CommentForm(request.POST)
         if comment_form.is_valid():
             comment = comment_form.save(commit=False)
             comment.article = Article.objects.get(pk=kwargs.get('pk'))
             comment.user = self.request.user
             comment_form.save()
             return JsonResponse({'status': 'success',
                                  'user': self.request.user.get_official_name(), })
         else:
             return JsonResponse({'status': 'error'})
Ejemplo n.º 9
0
def addComment (request, article_id):
    if request.POST:
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)# запрещаем сохранять сейчас
            comment.comments_article = Article.objects.get(id = article_id)
            comment.comments_user_id = auth.get_user(request).id
            comment.comments_date = datetime.datetime.today()
            form.save()
            #request.session.set_expiry(1)
            #request.session['pouse'] = True
    return redirect('/articles/get/%s' % article_id)
Ejemplo n.º 10
0
def addcomment(request, article_id):
    if request.POST and ("pause") not in request.session:
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_acticle = Article.objects.get(id=article_id)
            comment.comments_date = datetime.datetime.now()
            form.save()
            request.session.set_expiry(3)
            request.session['pause'] = True

    return redirect("/get/%s" % article_id)
Ejemplo n.º 11
0
def addcomment(request, article_id):
    if request.method=='POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_article = Article.objects.get(id = article_id)
            if request.user.is_anonymous():
                return redirect('/article/get/%s/' % article_id)
            else:
                comment.comments_from = request.user
                form.save()
                return redirect('/article/get/%s/' % article_id)
Ejemplo n.º 12
0
def addcomment(request, article_id):  # добавление комментариев

    if request.POST:
        form = CommentForm(request.POST)
        username = auth.get_user(request).username

        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_article = Article.objects.get(id=article_id)
            comment.username_comments = request.user
            form.save()

    return redirect('/articles/get/%s/' % article_id)
Ejemplo n.º 13
0
def edit_comment(request, pk):
    user = request.user
    comment = get_object_or_404(Commentary, pk=pk)
    form = CommentForm(instance=comment)
    if request.method == 'POST' and user == comment.nick.user:
        form = CommentForm(request.POST, instance=comment)
        if form.is_valid():
            form.save()
            return redirect('index')
    return render(request, 'article/edit_comment.html', {
        'form': form,
        'user': user,
        'comment': comment
    })
Ejemplo n.º 14
0
def post_detail(request, post_id):
    pk = post_id
    # post = Post.objects.get(id=pk)
    post = get_object_or_404(Post, id=pk, draft=False)
    comments = post.comments.all()
    form = CommentForm(request.POST or None)
    print(post)
    context = {'post': post, 'comments': comments, 'form': form}
    if request.method == 'POST':
        if form.is_valid():
            form.instance.post = post
            form.save()
            messages.add_message(request, messages.SUCCESS, 'basarili')
            return redirect('post_detail', post_id=post.id)
    return render(request, 'article/post_detail.html', context)
Ejemplo n.º 15
0
def user_comment(request, article_id):
    """
    用户评论文章的处理函数
    :param request:
    :param article_id:
    :return:
    """
    user = request.session.get('user')
    print(user)
    try:
        article = Article.objects.get(id=article_id)
    except Exception:
        return JsonResponse({'code': 'no', 'msg': '文章不存在!'})
    else:
        comment_form = CommentForm(request.POST)
    if comment_form.is_valid():
        comment = comment_form.save(commit=False)
        comment.article_id = article_id
        comment.user = user
        comment.create_time = time.strftime('%Y-%m-%d %H:%M', time.localtime(time.time()))
        comment.save()
        article_comment_count = article.comment_set.count()
        data = create_comment_element(request, user, comment, article_comment_count)
        return JsonResponse({'code': 'ok', 'data': data})
    else:
        return JsonResponse({'code': 'no', 'msg': '数据格式错误!'})
Ejemplo n.º 16
0
def article(request, slug):
    if request.method == "POST":
        comment_form = CommentForm(data=request.POST)
        user = comment_form.save().author
        if comment_form.is_valid() and user.is_authenticated():
            Article.objects.get(slug=slug).comments.add(comment_form.save())

        else:
            return HttpResponse("You are not allowed to comment")

    else:
        comment_form = CommentForm()

    return render(request, 'article.html',
            {'article':Article.objects.get(slug=slug),'comment':comment_form,
                'request':request })
Ejemplo n.º 17
0
def list_article_detail(request, article_id, slug):
    article = get_object_or_404(ArticlePost, id=article_id, slug=slug)
    total_views = redis_db.incr('article:{}:views'.format(article_id))
    redis_db.zincrby('article_ranking', article_id, 1)

    article_ranking = redis_db.zrange('article_ranking', 0, -1, desc=True)[:10]
    article_ranking_ids = [
        int(article_ranking_id) for article_ranking_id in article_ranking
    ]
    most_viewed = list(ArticlePost.objects.filter(id__in=article_ranking_ids))
    most_viewed.sort(key=lambda x: article_ranking_ids.index(x.id))

    # 推荐相似文章
    article_tags_ids = article.article_tag.values_list('id', flat=True)
    similar_articles = ArticlePost.objects.filter(
        article_tag__in=article_tags_ids).exclude(id=article.id)
    similar_articles = similar_articles.annotate(
        same_tags=Count('article_tag')).order_by('-same_tags', '-create_time')

    if request.method == 'POST':
        comment_form = CommentForm(data=request.POST)
        if comment_form.is_valid():
            new_comment = comment_form.save(commit=False)
            new_comment.article = article
            new_comment.save()
    else:
        comment_form = CommentForm()
    return render(
        request, 'article/list/article_detail.html', {
            'article': article,
            'total_views': total_views,
            'most_viewed': most_viewed,
            'comment_form': comment_form,
            'similar_articles': similar_articles,
        })
Ejemplo n.º 18
0
def article_detail(request, id, slug):
    article = get_object_or_404(ArticlePost, id=id, slug=slug)
    total_views = r.incr("article:{}:views".format(article.id))

    if request.method == "POST":
        if request.user.is_authenticated:
            comment_form = CommentForm(data=request.POST)
            if comment_form.is_valid():
                new_comment = comment_form.save(commit=False)
                new_comment.article = article
                new_comment.commentator = request.user
                new_comment.save()
        else:
            return HttpResponseRedirect("/account/login/")
    else:
        comment_form = CommentForm()

    article_tags_ids = article.article_tag.values_list("id", flat=True)
    similar_articles = ArticlePost.objects.filter(
        article_tag__in=article_tags_ids).exclude(id=article.id)
    similar_articles = similar_articles.annotate(
        same_tags=Count("article_tag")).order_by('-same_tags', '-created')[:4]

    return render(
        request, "article/list/article_detail.html", {
            "article": article,
            "total_views": total_views,
            "comment_form": comment_form,
            "similar_articles": similar_articles
        })
Ejemplo n.º 19
0
def add_comment(request, article_id):
    if request.user.is_authenticated():
        a = Article.objects.get(id = article_id)

        if request.POST and request.POST.get("content", "").strip() != '':

            form = CommentForm(request.POST)

            if form.is_valid():
                c = form.save(commit=False)
                c.creation_date = timezone.now()
                c.article = a
                c.author = request.user
                c.save()

                return HttpResponseRedirect('/articles/get/%s' % article_id)
        else:
            form = CommentForm()

        args = {}
        args.update(csrf(request))

        args['article'] = a
        args['form'] = form

        return render_to_response('add_comment.html', args)
    else:
        return HttpResponseRedirect('/accounts/login')
Ejemplo n.º 20
0
def article_detail(request, id, slug):
    article = get_object_or_404(ArticlePost, id=id, slug=slug)
    total_views = r.incr("article:{}:views".format(article.id))
    r.zincrby('article_ranking', article.id, 1)

    article_ranking = r.zrange('article_ranking', 0, -1, desc=True)[:10]
    article_ranking_ids = [int(id) for id in article_ranking]
    most_viewed = list(ArticlePost.objects.filter(id__in=article_ranking_ids))
    most_viewed.sort(key=lambda x: article_ranking_ids.index(x.id))

    if request.method == "POST":
        comment_form = CommentForm(data=request.POST)
        if comment_form.is_valid():
            new_comment = comment_form.save(commit=False)
            new_comment.article = article
            new_comment.save()
    else:
        comment_form = CommentForm()

    article_tags_ids = article.article_tag.values_list("id", flat=True)
    similar_articles = ArticlePost.objects.filter(
        article_tag__in=article_tags_ids).exclude(id=article.id)
    similar_articles = similar_articles.annotate(
        same_tags=Count("article_tag")).order_by('-same_tags', '-created')[:4]

    return render(
        request, "article/list/article_detail.html", {
            "article": article,
            "total_views": total_views,
            "most_viewed": most_viewed,
            "comment_form": comment_form,
            "similar_articles": similar_articles
        })
Ejemplo n.º 21
0
def add_comment(request, article_id):
    if request.user.is_authenticated():
        a = Article.objects.get(id=article_id)

        if request.POST and request.POST.get("content", "").strip() != '':

            form = CommentForm(request.POST)

            if form.is_valid():
                c = form.save(commit=False)
                c.creation_date = timezone.now()
                c.article = a
                c.author = request.user
                c.save()

                return HttpResponseRedirect('/articles/get/%s' % article_id)
        else:
            form = CommentForm()

        args = {}
        args.update(csrf(request))

        args['article'] = a
        args['form'] = form

        return render_to_response('add_comment.html', args)
    else:
        return HttpResponseRedirect('/accounts/login')
Ejemplo n.º 22
0
def create_comment(request):
    article_id = int(request.POST['article_id'])
    article = Article.normal_objects.get(id=article_id)
    to_comment_id = int(request.POST.get("to_comment_id", 0))
    form = CommentForm(request.POST)
    if to_comment_id != 0:
        to_comment = Comment.objects.get(id=to_comment_id)
        new_msg = UserMessage(owner=to_comment.owner,
                              content="有人回复了你的评论'%s' " %
                              to_comment.content[:30],
                              link="/article/articledetail/%s" % article_id,
                              status=0)
        new_msg.save()
    else:
        to_comment = None
        new_msg = UserMessage(owner=article.owner,
                              content="有人评论了你的文章《%s》" % article.title,
                              link="/article/articledetail/%s" % article_id,
                              status=0)
        new_msg.save()
    if form.is_valid():
        comment = form.save(commit=False)
        comment.owner = request.user
        comment.article = article
        comment.to_comment = to_comment
        comment.status = 0
        comment.save()
        status = "ok"
        msg = ""
    else:
        status = "err"
        msg = "错误信息"
    return json_response({"status": status, "msg": msg})
Ejemplo n.º 23
0
def addcomment(request, id):
    if 'pause' not in request.session:
        article = get_object_or_404(Article, id=id)
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.article = article
            comment.save()
            request.session.set_expiry(60)  # кука с сессией будет актуальна 1 минуту
            request.session['pause'] = True # дополнительное значение в сессии
    return redirect('/articles/get/{}/'.format(id))
Ejemplo n.º 24
0
def addcomment(request, id):
    if 'pause' not in request.session:
        article = get_object_or_404(Article, id=id)
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.article = article
            comment.save()
            request.session.set_expiry(
                60)  # кука с сессией будет актуальна 1 минуту
            request.session['pause'] = True  # дополнительное значение в сессии
    return redirect('/articles/get/{}/'.format(id))
Ejemplo n.º 25
0
def detail(request, id):
    post = Article.objects.get(id=id)
    all_comment = Comment.objects.filter(article__id=id)
    if request.method == 'POST':
        comment_form = CommentForm(data=request.POST)
        if comment_form.is_valid():
            new_comment = comment_form.save(commit=False)
            new_comment.post = post
            new_comment.save()
    else:
        comment_form = CommentForm()
    return render(request, 'detail.html', {'post': post, 'all_comment': all_comment, 'comment_form': comment_form})
Ejemplo n.º 26
0
def add_comment_to_post(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.post = post
            comment.save()
            return redirect('post_detail', pk=post.pk)

    else:
        form = CommentForm()
    return render(request, 'comment_form.html', {'form': form})
Ejemplo n.º 27
0
def article_detail(request, id, slug):
    article = get_object_or_404(ArticlePost, id=id, slug=slug)
    # total_views = r.incr("article:{}:views".format(article.id))
    # import redis
    # from django.conf import settings
    # 注:用redis统计文章访问量较快,大型网站常用。此处个人博客不用,省的每次开redis服务器
    # r = redis.StrictRedis(host=settings.REDIS_HOST, port=settings.REDIS_PORT, db=settings.REDIS_DB)
    # r.zincrby('article_ranking', 1, article.id)  # 每次访问时,自增article_ranking里对应article_id的分数

    # 按照索引范围获取name对应的有序集合的元素,0~-1表示从开头到结尾,排序规则desc=True表示从大到小
    # article_ranking = r.zrange("article_ranking", 0, -1, desc=True)[:10]
    # article_ranking_ids = [int(id) for id in article_ranking]  # 对字典而言,直接for的话取的是key

    # most_viewed = list(ArticlePost.objects.filter(id__in=article_ranking_ids))  # id__in可以传进列表一次取值
    # most_viewed.sort(key=lambda x: article_ranking_ids.index(x.id))  # 用id排序

    if request.method == "POST":
        comment_form = CommentForm(data=request.POST)
        if comment_form.is_valid():
            new_comment = comment_form.save(commit=False)
            new_comment.article = article
            new_comment.save()
    else:
        comment_form = CommentForm()  # get方法的话,直接创建表单返回
        article.views += 1
        article.save(update_fields=['views'])  # 存进数据库

    most_viewed_articles = ArticlePost.objects.all().order_by(
        '-views')[:4]  # 以views数量降序排序

    article_tags_ids = article.article_tag.values_list(
        "id", flat=True)  # 得到当前对象(article_tag是一个对象)的指定字段值
    # exclude排除id相同的文章
    similar_articles = ArticlePost.objects.filter(
        article_tag__in=article_tags_ids).exclude(id=article.id)
    # 聚合,取4篇相似文章,依照最新和相同标签两种排序方式
    similar_articles = similar_articles.annotate(
        same_tags=Count("article_tag")).order_by('-same_tags', '-created')[:4]

    # return render(request, "article/list/article_content.html",
    # {"article": article, "total_views": total_views,
    # "most_viewed": most_viewed, "comment_form": comment_form, "similar_articles": similar_articles})
    return render(
        request, "article/list/article_content.html", {
            "article": article,
            "total_views": article.views,
            "most_viewed_articles": most_viewed_articles,
            "comment_form": comment_form,
            "similar_articles": similar_articles
        })
Ejemplo n.º 28
0
def add_comment(request, article_id):
    """
    The function adds comment of the article
    :param request:
    :param article_id:
    :return:
    """
    if request.POST and ('pause' not in request.session):
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.comments_article = Article.objects.get(id=article_id)
            comment.comments_date = timezone.now()

            if request.user.id:
                comment.comments_from_id = request.user.id
            else:
                return HttpResponse('Не авторизован')

            form.save()
            # Создаем объект сессии в течении 60 секунд
            # request.session.set_expiry(60)
            # request.session['pause'] = True
    return redirect(reverse('article:article', args=(article_id, 1)))
Ejemplo n.º 29
0
def add_comment(request, pk):
    user = request.user
    article = get_object_or_404(Article, pk=pk)
    if request.method == "POST" and (
            user.groups.filter(name="Users").count()
            or user.groups.filter(name="Authors").count()):
        form = CommentForm(request.POST)
        if form.is_valid():
            commentary = form.save(commit=False)
            commentary.article = article
            commentary.nick = user.profile
            commentary.save()
            return redirect('detail', pk=article.pk)
    else:
        form = CommentForm()
    return render(request, 'article/commentary_form.html', {'form': form})
Ejemplo n.º 30
0
 def comment(request):
     """ 文章评论 """
     if request.method == "POST":
         form = CommentForm(request.POST)
         if form.is_valid():
             new_comment = form.save(commit=False)
             new_comment.article = ArticlePost.objects.get(pk=request.POST.get('pk'))
             new_comment.save()
             return JsonResponse({
                 "code": 200,
                 'msg': "Thanks for commenting, I will reply later.",
                 "data": {
                     'name': form.cleaned_data['commentator'],
                     'body': form.cleaned_data['body']
                 }})
         else:
             return JsonResponse({"code": 400, 'msg': "Error"})
Ejemplo n.º 31
0
def comment(request, article_id):
    art = Article.objects.get(id=article_id)
    if request.method == 'POST':
        form = CommentForm(data=request.POST)
        if form.is_valid():
            comm = form.save(commit=False)
            comm.comment_date = timezone.now()
            comm.article = art
            comm.save()
            messages.success(request, "Your Comment was added")
            return redirect('all_articles')
    else:
        form = CommentForm()
        args = {}
        args.update(csrf(request))
        args['article'] = art
        args['form'] = form
    return render(request, 'comment/comment.html', args)
Ejemplo n.º 32
0
def comment(request, article_id):
    art = Article.objects.get(id=article_id)
    if request.method == 'POST':
        form = CommentForm(data=request.POST)
        if form.is_valid():
            comm = form.save(commit=False)
            comm.comment_date = timezone.now()
            comm.article = art
            comm.save()
            messages.success(request, "Your Comment was added")
            return redirect('all_articles')
    else:
        form = CommentForm()
        args = {}
        args.update(csrf(request))
        args['article'] = art
        args['form'] = form
    return render(request, 'comment/comment.html', args)
Ejemplo n.º 33
0
def add_comment(request, article_id):
    a = Article.objects.get(id=article_id)
    if request.method == 'POST':
        f = CommentForm(request.POST)
        if f.is_valid():
            c = f.save(commit=False)
            c.pub_date = timezone.now()
            c.article = a
            c.save()
            messages.success(request, "Your Comment was Added")
            return HttpResponseRedirect('/articles/get/%s' % article_id)
    else:
        f = CommentForm()
    args = {}
    args.update(csrf(request))
    args['article'] = a
    args['form'] = f
    return render_to_response('add_comment.html', args)
Ejemplo n.º 34
0
def add_comment(request, article_id):
    a = Article.objects.get(id=article_id)
    #print "Add Comment ......:",a
    if request.method == "POST":
        f = CommentForm(request.POST)
        #print "Add Comment :",f
        if f.is_valid():
            #print "In is valid ::::"
            c = f.save(commit=False)
            c.pub_date = datetime.now()
            c.article = a
            c.save()
            
            messages.success(request, "Your comment was added")
            return HttpResponseRedirect('/articles/get/%s'%article_id)
        
    else:
        f = CommentForm()
        
    args={}
    args.update(csrf(request))
    args['article'] = a
    args['form'] = f
    return render_to_response('add_comment.html',args)