[점프 투 플라스크] 공지 및 상단 고정 기능
pybo처럼 게시물을 상단 고정하여 공지로 등록해두고 싶습니다! postgresql 테이블에서 임의로 고정해두는 방법이 있을까요?
seooo03 님 580
2021년 9월 17일 4:33 오후
2개의 답변이 있습니다. 1 / 1 Page
파이보는 Question 테이블에 공지에 해당하는 컬럼을 추가하여 항상 먼저 검색될 수 있도록 order_by 에 공지 컬럼을 걸었습니다.
박응용 님
2021년 9월 17일 6:18 오후
다음은 pybo.kr의 Question 테이블입니다.
class Question(models.Model):
class Meta:
ordering = ['id']
author = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='author_question')
subject = models.CharField(max_length=200)
content = models.TextField()
create_date = models.DateTimeField(auto_now_add=True, blank=True)
modify_date = models.DateTimeField(null=True, blank=True)
voter = models.ManyToManyField(CustomUser, related_name='voter_question', blank=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='category_question')
view_count = models.IntegerField(null=True, blank=True, default=0)
notice = models.BooleanField(default=False) # 공지사항 여부
def __str__(self):
return self.subject
def get_absolute_url(self):
return reverse('pybo:question_detail', args=[self.id])
def get_recent_comments(self):
return self.comment_set.all().order_by('-create_date')[:5]
그리고 공지사항 정렬은 다음과 같이 합니다.
_question_list = _question_list.order_by('-notice', '-create_date')
물론 notice 컬럼 값은 어드민이나 수정화면에서 먼저 설정해야 합니다.
박응용 님
2021년 9월 18일 9:43 오전