Commentapp 마무리 (작정하고 장고 38강)

_upper·2023년 7월 6일

38강

  • View 파트를 수정하지 않고 template 내에서 for 문을 통해 댓글을 시각화 하는 작업 및 CommentApp 나머지 부분을 마무리한다.

commetapp/migrations/views.py

class CommentCreateView(CreateView):
    model = Comment
    form_class = CommentCreationForm
    template_name = 'commentapp/create.html'


    def form_valid(self, form):

        temp_comment = form.save(commit=False)
        temp_comment.article = Article.objects.get(pk=self.request.POST['article_pk'])
        temp_comment.writter = self.request.user
        temp_comment.save()
        return super().form_valid(form)

    def get_success_url(self):
        return reverse('articleapp:detail', kwargs={'pk': self.object.article.pk})



@method_decorator(comment_ownership_required, 'get')
@method_decorator(comment_ownership_required, 'post')

class CommentDeleteView(DeleteView):
    model = Comment
    context_object_name = 'target_comment'
    template_name = 'commentapp/delete.html'

    def get_success_url(self):
        return reverse('articleapp:detail', kwargs={'pk': self.object.article.pk})

commentapp/templates/detail.thml

<div style="border: 1px solid; text-align: left; padding: 4%; margin: 1rem 0; bogrder-radius: 1rem;
            border-color: #bbb;">
    <div>
        <strong>
            {{ comment.writer.profile.nickname }}
        </strong>
        &nbsp&nbsp&nbsp
        {{ comment.created_at }}
    </div>
    <div style="margin: 1rem 0;">
        {{ comment.content }}
    </div>
    {% if comment.writter == user %}
    <div style="text-align: right">
        <a href="{% url 'commentapp:delete' pk=comment.pk %}"\\
            class="btn btn-danger rounded-pill">
            Delete
        </a>

    </div>
    {% endif %}

0개의 댓글