Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

포스트 상세보기에서 이전글 과 다음글을 클릭해서 넘어 가고 싶은데 어떻게 하면 되나요?

3 years, 2 months ago

gmma1479 gmma1479

안녕하세요 블로그를 만들다가 궁금한 점이 있어서 이렇게 글을 남깁니다.


포스트 상세보기에서 다시 포스트 리스트로 넘어가지 않고 상세보기에서 다음글로 넘어 갈려고 하려면 어떻게 해야되나요?


책을 보고 따라 해봐도 안되서 ㅠ 이렇게 질문을 남깁니다.

아래 사진처럼 되고 싶은데 머리가 나빠서 어떻게 해야 될지 모르겠어요 ㅠ 

제발 알려주세요 ㅠㅠㅠ



sungyong
sungyong   3 years, 2 months ago

안녕하세요. 책의 내용에서 응용을 하고 계신 것 같네요. 


이전글과 다음글의 제목을 표시하실 수 있다면, 그 위치에 <a> 태그를 달고, href경로를 해당 post의 get_absolute_url로 적어주면 될 것 같아요. 

시도해보시고, 혹시 어려우시면, html 코드를 보여주시면 안내해드리겠습니다. 

Updated: Sept. 8, 2021, 1:33 a.m.

gmma1479
gmma1479   3 years, 2 months ago

안녕하세요 알려주신데로 했는데 잘 안되서 이렇게 다시 글 남깁니다.ㅠ

view.py

class PostDetail(DetailView):
model = Post
ordering = '-pk'
paginate_by = 2

def get_context_data(self, **kwargs):
context = super(PostDetail, self).get_context_data()
context['categories'] = Category.objects.all()
context['no_category_post_count'] = Post.objects.filter(category=None).count()
context['comment_form'] = CommentForm

return context


post_detail.html

{% if post.is_paginated %}
<!-- Pagination -->
<ul class="pagination justify-content-center mb-4">
{% if post.has_previous %}
<li class="page-item">
<a class="page-link" href="{{ post.has_previous.get_absolute_url }}">&larr; 이전</a>
</li>
{% endif %}

{% if post.has_next %}
<li class="page-item">
<a class="page-link" href="{{ post.has_next.get_absolute_url }}">다음 &rarr;</a>
</li>
{% endif %}
</ul>
{% endif %}

Updated: Sept. 8, 2021, 3:09 p.m.

gmma1479
gmma1479   3 years, 2 months ago

안녕하세요 ~~

여기저기 웹사이트 돌아다니면서 이것도 해보고 저것도 해보고 하다가 어떨결에 됬어요....

작성된 코드 공유합니다.

model부분에서 밑줄친 부분 추가하고 진행하니 되네요 ㅎ

model.py, datail_html

class Post(models.Model):
title = models.CharField(max_length=30)
hook_text = models.CharField(max_length=100, blank=True)
content = MarkdownxField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
head_image = models.ImageField(upload_to='blog/images/%y/%m/%d', blank=True)
file_upload = models.FileField(upload_to='blog/file/%y/%m/%d', blank=True)
author = models.ForeignKey(User, null=True, blank=True, on_delete=models.SET_NULL)
category = models.ForeignKey(Category, null=True, blank=True, on_delete=models.SET_NULL)
tags = models.ManyToManyField(Tag, blank=True)
pub_date = models.DateTimeField('PUBLISH DATE', default=timezone.now)
mod_date = models.DateTimeField('MODIFY DATE', auto_now=True)




def __str__(self):
return f'[{self.pk}] {self.title} :: {self.author}'

def get_absolute_url(self):
return f'/blog/{self.pk}/'


def get_file_name(self):
return os.path.basename(self.file_upload.name)

def get_file_ext(self):
return self.get_file_name().split('.')[-1]

def get_content_markdown(self):
return markdown(self.content)

def get_previous(self):
return self.get_previous_by_mod_date()


def get_next(self):
return self.get_next_by_mod_date()
       <ul class="pagination justify-content-center mb-4">
{% if object.get_previous %}
<li class="page-item">
<a class="page-link" href="{{ object.get_previous.get_absolute_url }}">&larr; 이전</a>
</li>
{% endif %}
{% if object.get_next %}

<li class="page-item">
<a class="page-link" href="{{ object.get_next.get_absolute_url }}">다음 &rarr;</a>
</li>
{% endif %}
</ul>

Updated: Sept. 10, 2021, 4:56 p.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A