1205 TIL

looggi·2022년 12월 5일
1

스파르타 내배캠 AI-3

목록 보기
86/130
post-thumbnail

🪨 Stone Coffee 프로젝트 5 일차

✅ checkpoint

☕ 회의때 할 얘기

  • 깃 마일스톤
  • 깃 칸반보드
  • PR시 제목 간단하게 쓸 것 ✔️
  • 좋아요하면 장바구니에 추가되었습니다? ✔️
  • 범기님이랑 상품 디테일 페이지 얘기해볼것 ✔️

☕ 알아볼 것

📍 정렬하는 방법

  • views.py에서 객체들을 불러서 뒤에 .order_by(기준이 될 필드) 메소드를 호출한다
products = Products.objects.filter(hide_option=0).order_by("-created_at")
  • models.py에서 클래스 메타에서 ordering 속성을 준다
    ordering is implemented on the database side
class Song(models.Model):
    album = models.ForeignKey('album.Album', default=1)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)

    class Meta:
        ordering = ['timestamp', 'pk']
  • admin에서 ordering하는 방법
list_display=[
			"id",
            "get_username",
            "post",
            ]
# 3가지 칼럼으로 보여주겠다
# 그중 get_username은 username으로 보여주도록 아래처럼
@display(ordering='user__usernmae',description='작성자')
def get_username(self,obj):
	return obj.user.usrname

📍 import get_object_or_404 어디서 임포트할것인가 그것이 문제

https://stackoverflow.com/questions/68001954/difference-between-django-shortcuts-and-rest-framework-generics
from rest_framework.generics
from django.shortcuts

❌ 오류

  • ❌오류

method: PUT | {{host}}/comment/3/comment/1/ ➜ 이 url로 요청을 보냈을 때

원래 아래처럼 나와야 정상인데
갑자기 2번게시물 1번 댓글이 수정됐다 ㅋㅋㅋ 댓글 id가 게시물마다 순차적으로 생길거라고 생각하고 실수로 넣어본건데 안넣어봤으면 큰일날뻔 왠지 커멘트 id만 넣어서 얘가 찾을 수 있나 하는 생각을 했었는데 실수해서 증말 다행


  • ❌오류는 아니지만

put은 create가 아니니까 굳이 저장할 때 각종 id값을 넣을 필요가 없음
그리고 위에서 커멘트 수정할 때랑 마찬가지로 조건을 더 특정해주지 않으면 얘또 이상한 애 수정하고 있을듯


  • ❌오류
    get_object_or_404 vs filter

<QuerySet [<Comment: Comment object (9)>]>
get이 아니라 filter로 하면 오류가 안난당 큐큐 왜그래?

➜ get_object_or_404는 결과가 2개 이상 나오면 multiple object returned 오류가 발생
객체 하나가 아니라 객체들의 리스트를 반환함
결과가 여러 개 나오는 경우에는 get_list_or_404

그래서 아래처럼해도 된당

☕ ORM

  • OOP(객체지향프로그래밍)-RDBMS를 매핑
  • Model Class를 통해서 객체를 만들고 이 객체를 통해서 DB에 접근
  • QuerySet: Model.objects.all()처럼 objects를 사용하여 다수의 데이터를 가져오는 함수를 사용할 때 반환되는 객체

☕ 지연연산 (Lazy Evaluation)

Eager evaluation can be more efficient and more controllable, and is trivially converted to lazy evaluation.

☕ path-converter

url패턴에거 사용하는 < int:post_id> 부분

permission.py

profile
looooggi

0개의 댓글