5.Django QuerySet

최대 1 분 소요

Django QuerySet

정렬 조건 추가

SELECT 쿼리에 “ORDER BY” 추가

  • 정렬조건을 별도로 추가하지 않으면 일관된 순서를 보장받을 수 없음

  • DB에서 다수 필드에 대한 정렬을 지원

    • 가급적 단일 필드로 하는 것이 성능에 이익
    • 시간순 / 역순 정렬시, id 필드를 활용

정렬 조건 방법

  1. 모델 클래스의 Meta속성으로 ordering 설정 : list로 지정
class Item(models.Model):
    name = models.CharField(max_length=100)
    desc = models.TextField(blank=True)
    price = models. PositiveIntegerField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        ordering = ['id']
  • django-extensions 라이브러리 명령어
    • 공식문서를 보고 활용 방법을 꼭 봐야함
    • settings.py/INSTALLED_APPS에서 django_extensions 입력해야함
      python manage.py shell_plus --print-sql
      
  1. 모든 queryset에 order_by(…)에 지정

댓글남기기