본문 바로가기
Python

python 개인과제 해설

by 코드뭉치 2023. 4. 10.


=================================

auto_now_add
> 생성될 때 시간 기록

auto_now 
> 생성될 때 기록, 저장(수정)될 때 마다 갱신

=================================

path(' ')
>path에 공백은 프로젝트 폴더 url 경로에서 요청이 들어왔을 때, 그 url을 그대로 쓰겠다는 뜻.

=================================

User.objects.get(a=a)
get : 무조건 하나만 존재해야함
뒤에 검색했을때 결과가 없거나, 두개이상이면 에러.
그래서 unique field나 pk를 기준으로 검색한다. 
try except구문과 같이 사용

User.objects.filter(a=a)
filter : 0개여도 ok, 1개여도 ok, 2개 이상이여도 ok
결과의 개수와 관계없이 쿼리셋을 리턴해준다.

=================================

authenticate()와 login()은 다르다.
authenticate는 사용자가 있는지 확인만 하고,
login을 해야 실제로 로그인이 된다.

=================================

request.POST는 딕셔너리의 형태.
request.POST["a"]
request.POST.get("a", "")
a라는 key가 없을 때, 기본값으로 "" == 공백을 지정하겠다.

=================================

역참조
ex)게시글과 댓글

class 게시글
 제목 = 
 내용 = 

 ...


class 댓글
 게시글 = foreignkey(게시글, related_name="댓글")
 내용 = 

 ...

article = 게시글.objects.get(id=)
article_comments = 게시글.댓글


related_name이 없으면 댓글_set 하면 역참조
article_comments = 게시글.댓글_set


OnetoOne 은 테이블이름으로 바로 접근가능

 

ManytoMany, OnetoMany, OnetoOne 각각  다 다르다.
=================================

댓글