Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

JOOHUUN

django 쿼리문법 본문

Django

django 쿼리문법

JOOHUUN 2022. 6. 20. 15:39
# 유저 모델
class User(AbstractBaseUser):
    username = models.CharField("사용자 계정", max_length=50, unique=True)
    password = models.CharField("비밀번호", max_length=128)
    email = models.EmailField("이메일 주소", max_length=100)
    fullname = models.CharField("이름", max_length=20)
    join_date = models.DateField("가입일", auto_now_add=True)

    is_active = models.BooleanField(default=True)

    is_admin = models.BooleanField(default=False)


# 취미 모델
class Hobby(models.Model):
    name = models.CharField("취미 이름", max_length=20)
    def __str__(self):
        return self.name
        
        
# 프로필 모델       
class Profile(models.Model):
    # user = models.ForeignKey(User, verbose_name="유저", on_delete=models.CASCADE, unique=True)
    user = models.OneToOneField(User, verbose_name="유저", on_delete=models.CASCADE)
    introduction = models.TextField("자기소개", null=True, blank=True)
    birthday = models.DateField("생일", null=True, blank=True)
    age = models.IntegerField("나이")
    hobby = models.ManyToManyField(Hobby, verbose_name="취미")

    def __str__(self):
        return f"{self.user.username} 님의 프로필입니다."

1. get 사용해서 id=2 유저 불러오기

2. filter(__contains="키워드") 사용해서 fullname에 테스트가 들어간 유저 불러오기

3.filter(__in=["키워드"]) 사용해서 취미가 음악인 유저 불러오기

- in: 특정 list에 포함된 object 찾기

4. filter(__gte) 사용해서 10살보다 크거나같은 유저 찾기

- gt / lt / gte / lte: 특정 값보다 크거나/작거나/크거나같거나/작거나같은 object 찾기

5. order_by 사용하여 작성시간으로 정렬하기

- start_date에 '-' 를 붙여서 역순(최신작성순)으로 불러옴

Comments