django

  • django.core.paginator의 Paginator 모듈을 통해 페이징을 구현할 수 있다.
  • reverse lookup이 가능하다. 가령 아래의 모델의 경우
    class Post(models.Model):
      author = models.ForeignKey('auth.User')
      title = models.CharField(max_length=200)
      text = models.TextField()
      created_at = models.DateTimeField(default=timezone.now)
      published_at = models.DateTimeField(blank=True, null=True)
    
      def publish(self):
          self.published_at = timezone.now()
          self.save()
    
      def __str__(self):
          return self.title
    
    
    class Comment(models.Model):
      author = models.ForeignKey('auth.User')
      post = models.ForeignKey('Post', on_delete=models.CASCADE)
      text = models.TextField()
      created_at = models.DateTimeField(default=timezone.now)
    
    Comment가 Post에 relation을 갖는 형태인데, Post에서도 Comment쪽의 데이터를 얻어오는 게 가능하다. 가령 아래와 같은 식이다.
    {{ post.comment_set.count }}