예제 #1
0
def comment_create(request, post_pk):
    """
    url : /posts/<int:post_pk>/comments/create/
    Template: dqjtdma(post-list.html에 Form을 구현)
    post-list.html 내부에서, 각 Post마다 자신에게 연결된 PostComment목록을 보여주도록 한다
        <ul>
            <li><b>작성자명</b><span>내용</span></li>
            <li><b>작성자명</b><span>내용</span></li>
        </ul>
    Form: post.forms.CommentCreateForm
    :param request:
    :param post_pk:
    :return:
    """
    if request.method == 'POST':
        user = request.user
        post = Post.objects.get(pk=post_pk)
        # content = request.POST['content']
        # Form instance를 만드는데, data에 request.POST로 전달된 dict를 입력
        form = CommentCreateForm(data=request.POST)
        # Form 인스턴스 생성시, 주어진 데이터가 해당 Form이 가진 Field들에 적절한 데이터인지 검증
        if form.is_valid():
            # 검증에 통과한 경우, 통과한 데이터들은 Form 인스턴스의 'cleaned_date속성에 포함됨
            # content = form.cleaned_data['content']
            # PostComment.objects.create(
            #     author=user,
            #     post=post,
            #     content=content

            form.save(post=post, author=request.user)

        return redirect('posts:post_list')
예제 #2
0
def comment_create(request, post_pk):
    # URL: /posts/<int:post_pk>/comments/create/
    # Template: 없음 (post_list.html 내에 Form을 구현)
    #  post-list.html 내부에서, 각 Post마다 자신에게 연결된 PostComment목록을 보여주도록 함
    #   보여주는 형식은
    #   <ul>
    #       <li><b>작성자명</b><span>내용</span>/li>
    #       <li><b>작성자명</b><span>내용</span>/li>
    #   </ul>
    # Form: post.forms.CommentCreateForm

    content = request.POST['content']

    post = Post.objects.get(pk=post_pk)

    # Form 인스턴스를 만드는데, data에 request.POST로 전달된 dict 입력
    form = CommentCreateForm(data=request.POST)

    # Form 인스턴스 생성 시, 주어진 데이터가 해당 Form이 가진 Field들에 적절한 데이터인지 검증
    if form.is_valid():
        # comment = form.cleaned_data['comment']
        form.save(post=post, author=request.user)

        PostComment.objects.create(post=post,
                                   author=request.user,
                                   content=content)
        # post.postcomment_set.creat(post=post, author=request.user, content=comment)

    return redirect('posts:post-list')
예제 #3
0
def comment_create(request, pk):
    if request.method == 'POST':
        post = Post.objects.get(pk=pk)
        form = CommentCreateForm(data=request.POST)

        if form.is_valid():
            form.save(post=post, author=request.user)
        return redirect('posts:post-list')
예제 #4
0
def post_comment_view(request, post_pk):

    if request.method == 'POST':
        post = Post.objects.get(pk=post_pk)
        user = request.user
        # comment = request.POST['comment']
        # postcomment = post.postcomment_set.create(author=user, content=comment)
        form = CommentCreateForm(data=request.POST)
        if form.is_valid():
            form.save(post=post, author=user)
        return redirect('posts:post-list')
예제 #5
0
def post_list(request, tag=None):
    """
    1. 로그인 완료 후 이 페이지로 이동하도록 함
    2. index에 접근할 때 로그인이 되어있다면, 이 페이지로 이동하도록 함
        로그인 되어있는지 확인:
            User.is_authenticated가 True인지 체크

    URL :       /post/ (posts.urls를 사용, config.urls에서 include)
    Template : templates/posts/post-list.html
                <h1>Post List</h1>

    'posts'라는 키로 모든 Post QuerySet을 전달
    순서는 pk의 역순
    그리고 전달받은 QuerySet을 순회하며 적절히 Post내용을 출력
    """
    if tag is None:
        posts = Post.objects.order_by('-pk')
    else:
        posts = Post.objects.filter(tags__name__iexact=tag).order_by('-pk')

    comment_form = CommentCreateForm()
    context = {
        'posts': posts,
        'comment_form': comment_form,
    }
    return render(request, 'posts/post-list.html', context)
예제 #6
0
def post_list(request):
    """
    # URL = /posts/
    # template: templates/posts/post-list.html
    """
    # URL = /posts/
    # template: templates/posts/post-list.html
    posts = Post.objects.order_by('-pk')
    form = CommentCreateForm()
    context = dict(posts=posts, form=form)

    return render(request, 'posts/post-list.html', context)
예제 #7
0
def post_list_view(request, tag=None):
    # posts = Post.objects.all()
    if tag is None:
        posts = Post.objects.order_by('-pk')
    else:
        posts = Post.objects.filter(tags__name__iexact=tag).order_by('-pk')
    comment_form = CommentCreateForm()
    context = {
        'posts': posts,
        'comment_form': comment_form,
    }
    return render(request, 'posts/post-list.html', context)
예제 #8
0
def post_list(request, tag=None):
    if tag is None:
        posts = Post.objects.order_by('-pk')
    else:
        posts = Post.objects.filter(tags__name__iexact=tag).order_by('-pk')

    # request를 넘겨받아 render 호출
    # posts/post_list.html 템플릿을 보여줌

    # 쿼리셋 이름으로 사용되는 posts 변수 만듦
    comment_form = CommentCreateForm()

    # posts 쿼리셋 context에 담음
    context = {'posts': posts, 'comment_form': comment_form}

    # 템플릿을 사용하기 위한 context 매개변수 추가
    return render(request, 'posts/post_list.html', context)