def details_post(request, slug):
    instance = Post.objects.get(slug=slug)
    comments = instance.get_comment
    print(get_read_time(instance.get_markdown()))
    initial_data = {
        "content_type": instance.get_content_type,
        "object_id": instance.id
    }
    form = CommentForm(initial=initial_data)
    if request.method == "POST":
        form = CommentForm(request.POST or None, initial=initial_data)
        if form.is_valid():
            print('yes')
            c_type = form.cleaned_data.get("content_type")
            print(c_type)
            content_type = ContentType.objects.get(model=c_type)
            print(content_type)
            obj_id = form.cleaned_data.get("object_id")
            print(obj_id)
            content_data = form.cleaned_data.get("content")
            #print(content_data)
            ##replies
            parent_obj = None

            try:
                parent_id = int(request.POST.get("parent_id"))
            except:
                parent_id = None

            if parent_id:
                parent_qs = Comments.objects.filter(id=parent_id)
                if parent_qs.exists():
                    parent_obj = parent_qs.first()
            new_comment, created = Comments.objects.get_or_create(
                user=request.user,
                content_type=content_type,
                object_id=obj_id,
                content=content_data,
                parent=parent_obj,
            )
            return HttpResponseRedirect(
                new_comment.content_object.get_absoulte_url())

    context = {"posts": instance, "comments": comments, "form": form}
    return render(request, 'details.html', context)
Exemple #2
0
def comment_thread(request,id):
    obj = Comments.objects.get(id=id)
    try:
        obj = Comments.objects.get(id=id)
    except:
        raise Http404    

    if not obj.is_parent:
        obj = obj.parent

    initial_data = {
        "content_type": obj.content_type,
        "object_id":obj.id
    }
    form = CommentForm(initial=initial_data)
    if request.method =="POST":
        form = CommentForm(request.POST or None,initial=initial_data)
        if form.is_valid():
            c_type = form.cleaned_data.get("content_type")
            content_type = ContentType.objects.get_for_model(obj)
            obj_id = form.cleaned_data.get("object_id")
            content_data = form.cleaned_data.get("content")
            parent_obj = None
            try:
                parent_id  = int(request.POST.get("parent_id"))
            except:
                parent_id = None
            if parent_id:
                parent_qs = Comments.objects.filter(id=parent_id)
                if parent_qs.exists() :
                    parent_obj = parent_qs.first()   
            new_comment,created = Comments.objects.get_or_create(
                                   user = request.user,
                                   content_type=content_type,
                                   object_id= obj_id,
                                   content = content_data,   
                                   parent = parent_obj, 
                                )
                              
            return HttpResponseRedirect(new_comment.content_object.get_absoulte_url())          
    context = {
        "comment":obj,
        'form':form
    }
    return render(request,"comment_thread.html",context)