로토의 블로그

TIL: 20170917

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 }}