6.Django 학습노트--F조회와 Q조회

F 쿼리와 Q 쿼리의 차이점: Q 쿼리 - 대상에 대한 복잡한 쿼리 F 쿼리 - 대상의 특정한 열 값을 추출하는 작업 (내부 필드가 일치)
Q, F 객체 가져오기:
from django.db.models import Q,F

F: 주요 역할(한 표 안의 내부 필드와 필드 간의 대비 작업) 1)과 모델 자체의 필드를 비교한다.예를 들면 다음과 같습니다.
Student.objects.filter(age__gt=F('age2'))

2) 필드에 수학적으로 연산합니다.예를 들면 다음과 같습니다.
Student.objects.filter(age__gt=F('age2') * 2)

Q: 대상에 대한 복잡한 조회 및 조작: 기본적으로 Django의 조회는 다음과 같습니다. 사용자가zhangsan이고age=18인 데이터를 찾습니다.
UserInfo.objects.filter(username='zhangsan',age='18')

또는 작업: 실행이나 작업이 필요하면 Q 대상에 사용해야 합니다.Q 객체는 &| ~ (또는, 또는, 비) 로 연결할 수 있습니다.
UserInfo.objects.filter(Q(age__gt=20) & Q(age__lt=50))
UserInfo.objects.filter(Q(age__gt=20) | Q(age__lt=50))
UserInfo.objects.filter(~Q(age__lt=50))

같다Q가 키워드 매개변수와 함께 사용되는 경우 Q는 키워드 매개변수 앞에 배치되어야 합니다.
Student.objects.get(Q(age__gt=20) | Q(age__lt=50), name__contains='zhang')

좋은 웹페이지 즐겨찾기