본문 바로가기
반응형

파이썬 웹 개발28

[Django] ManyToManyField 추가 및 삭제 방법_ 예제 [Django] 파이썬 장고 ORM ManyToManyField 추가 및 삭제 방법_ 예제 테이블의 특정 컬럼에 대해서 다수의 옵션이 필요할 경우 ManyToManyField로 관리할 수 있다. 즉, 다 대 다 관계가 되는것이다. # 모델 샘플 Menu 모델의 option 컬럼은 ManyToManyField로 MenuOptionType을 타겟하고 있다. 즉 Menu 모델의 한 row에 대해서 option이 여러개 맵핑될 수 있다는 뜻이다. # ManyToManyFiel로 생성된 연동테이블 예시 Id Menu테이블 id MenuOptionType id 1 1 4 2 2 5 3 2 6 # 활용 방법 menu_list = Menu.objects.get(name='아이스아메리카노') menu_list.optio.. 2022. 5. 10.
[Django] List 안에 dict key값으로 정렬하기 _OUTER JOIN 대체 방법 장고 ORM OUTER JOIN은 성능도 안좋을 뿐더러, 가독성 및 작성이 상당히 까다롭다... List 안에 dict key값으로 정렬하기를 포함하여 이것을 통해 JOIN을 대체하는 방법입니다. ■ LIST의 dict key로 정렬하기 예를 들어 리스트 내에 위와같이 데이터가 있다고 해보자. 특정 key값으로 정렬을 하고 싶을때. 이런식으로 가능하다. 해당 LIST의 dict 특정 key값으로 정렬이 가능하다. newlist = sorted(LIST명, key=lambda d: d['key4']) # 즉 LIST명에 대해서 Dict key4 라는 키값으로 정렬을 하는것이 된다. ■ OUTER JOIN 대체 방법 # MODEL 위와 같은 모델이 있다고 해보자. 한 row에 각 테이블들의 값을 담으면서, .. 2022. 4. 22.
[Python Django] 월별 sum, count 집계함수 orm group_by 대시보드 및 통계표를 개발하다보면, 합계, 카운트 통계가 필요할 때가 있다. 장고 ORM을 통해 SUM, COUNT 집계함수를 작성해보자. class Payment(models.Model): Result = models.CharField(max_length=100) Payment_Date = models.DateTimeField(blank=True, null=True) Price = models.IntegerField(null=True) ■ 월별 sum, count 하기 필터부분은 Payment_Date가 2022년이면서 Price가 0원이상이고, Result가 결제인 데이터만 ! annotate(month=TruncMonth('Payment_Date')를 통해 월별로 그룹바이를 하고, Count 집계를.. 2022. 4. 19.
[Python Django] orm sum, count 출력하기 _orm 합계, 카운트(집계함수) 합계를 구하거나, 카운트 혹은 합계와 그 건수를 구해야 할때는 sum, count 함수가 필요합니다. class PayModel(models.Model): idx = models.IntegerField(unique=True) create_date = models.DateTimeField(blank=True, null=True) price = models.IntegerField(null=True) 예를 들어 PayModel 이라는 모델이 있다고 합시다. from django.db.models import Sum, Count test = PayModel.objects.filter(create_date__year=2022, price__gt=0).aggregate(Sum('price'), Count('pric.. 2022. 4. 14.
반응형