일기 대신 코드 슬쩍

[백엔드][장고][Django] Chapter #8 본문

Backend/Django

[백엔드][장고][Django] Chapter #8

코코자 2023. 7. 17. 20:07

#8.0 Methods

  • 검색 창에 대해 알아볼 거임
  • 검색창에 우리만의 액션, 우리만의 필터를 만드는 것도 배울거임
def rating(room):
	count = room.reviews.count()
	if count == 0:
		return "No Reviews"
	else:
	total_rating = 0
	for review in room.reviews.all().values("rating"):
		total_rating += review["rating"]
		return round(total_rating / count, 2)
  • rooms의 model.py에 다음과 같이 작성
  • rooms에서 리뷰의 평점을 볼 수 있게 할 것임

#8.1 Search Fields

  • room안에서 검색을 할 때 search fields 메소드를 이용해 다양한 조건을 추가할 수 있음, 또한 어떤 속성을 기준으로 검색이 될 지도 설정할 수 있음

#8.2 Admin Actions

  • admin액션을 추가할 거임
  • admin.py에 다음과 같이 작성
@admin.action(description="Set all prices to zero")
def reset_prices(model_admin, request, rooms):
    for room in rooms.all():
        room.price = 0
        room.save()
  • Roomadmin class안에 이것도 추가
actions = (reset_prices,)

#8.3 Cusom Filters

  • 우리만의 필터를 만들거임
  • 특히 관계만으로도 필터 가능

#8.4 Recap

  • 검색 필드 search_fields에 대해 배움