1) > admin 모듈의 AdminSite 클래스의 urls 메소드를 사용하는 명령어이다. django/contrib/admin/sites.py에서 확인 가능하다. 먼저 주어진 모델이 정의된 admin 클래스를 하에서 등록되는데 이 때 정의된 admin 클래스가 없다면 ModelAdmin을 기본으로 사용한다. 앞서 gallery 앱에서 정의한 Item ...
1) > Post 모델에 ImageField 기입하고 Pillow 인스톨 진행 >> 기본적으로 FileField의 모든 속성을 상속하는데 이미지 형태의 모델 인스턴스를 저장하기 위해서 height, width 속성을 지정할 수 있다. 그래도 역시 upload_to 부분이 가장 중요해 보인다. >>> Django에서는 widget으로 html tag를 생성하...
1) > 작품들이 위치할 gallery 앱 생성 >> 프로젝트의 INSTALLED_APPS에 해당 앱 등록 >>> 앱에 urls.py 파일 성성 후, urlspatterns 만들어 줌 >>>> 프로젝트의 urls.py에서 path와 include 명령어로 앱의 기본 주소를 앱 내 urls.py로 연결시켜 줌 2) ` ! [rejected] m...
1) > M:N 관계를 설정할 때 중요한 건 부모 테이블의 설정인 것 같다. 아래는 post의 부모 Post와, user의 부모 AUTHUSERMODEL이 보다 명시적으로 적혀있다. 위는 더 일반적인 ManyToManyField의 선언인데 여기서도 Post와 AUTHUSERMODEL을 확인할 수 있다. 이때 둘을 묶어주는 likeuserset이 User의...
1) > self를 지정함으로써 ManyToMany 관계를 User 간의 관계로 만들 수 있다. 최초 follow가 없을 수도 있으니 blank는 허용해준다 2) >자신을 제외한 유저 인스턴스를 User가 아닌 getusermodel()로 취하고 이를 리스트로 넘겨줘서 sidebar에서 순회하는데 사용한다. 3) Input Output Input...
1) > len(postlist)는 postlist 전체를 가져와서 메모리에 얹은 다음에 메모리 상의 리스트의 갯수를 반환하는 반면, post_list.count는 db에 count query를 던지게 된다.
1) > self를 지정함으로써 ManyToMany 관계를 User 간의 관계로 만들 수 있다. 최초 follow가 없을 수도 있으니 blank는 허용해준다 2) >자신을 제외한 유저 인스턴스를 User가 아닌 getusermodel()로 취하고 이를 리스트로 넘겨줘서 sidebar에서 순회하는데 사용한다. 3) Input Output Input...
1) > root의 기능을 프로젝트 레벨에서 instagram 앱으로 넘기면서 TemplateView를 RedirectView로 변경하고 기본 페이지로 접근했을 때 instagram 앱의 index로 이동하도록 한다.
1) > user는 현재 로그인된 유저이고, 우리가 찾는 username을 pageuser로 찾아줄 것이다. 여기서 getusermodel()이 내부적으로 settings.AUTHUSER_MODEL을 참조해서 username=username을 넘겨줄 수 있는 것으로 보인다. >> is_active를 켤 경우, 접근이 허용된 유저가 아니면 404 에러가 발...
1) > views.py에 postview 함수 혹은 DetailView의 인스턴스 함수를 정의해줄 때 pk/slug 인자를 사용한다. 그리고 해줘야할 작업은 getabsolute_url을 정의해주는 것이다. 그런데 해당 함수가 없어도 /post/pk로 접근하는데 에러가 발생하지 않았다. >> args=[self.pk]가 아닌 kwargs={"pk":se...
1) > instagra의 urls.py에 있는 각각의 path들이 prefix없이 작동할 수 있도록 2) > 외래키에서는 모델의 참조가 되는 클래스와 on_delete 옵션을 지정해줘야 한다. 3) > instagram 앱에서 모델을 만들고 makemigations까지 실행했으나 migrate에서 오류가 났다. accounts 앱에 적용된 000...
1) > urls.py에 as_view로 바로 정의해줄 수 있었지만, 커스터마이징을 위해 views.py까지 넘어왔다. >> @login_required 장식자를 사용한 함수뷰를 만드는 대신 LoginRequiredMixin과 PasswordChangeView를 모두 상속하는 클래스뷰의 인스턴스 함수를 생성하는 방법을 택했다. 2) > 깃헙에서는 클래...
1) > views.py의 profileedit이 아직 'form'을 넘겨주지 않아서 form.html에도 form이 전달되지 않을 경우를 설정해줬다. 2) > signup 함수에서는 아직 유저 정보가 없어서 User를 Model로하는 빈 SignupForm instance를 생성하는 게 목적이었지만, ProfieForm에서는 현재 user에 해당하는...
1) > 앞서 @loginrequired 장식자를 이용했을 떄 /accounts/login/으로 이동했는데 이는 settings의 LOGINURL이 해당 문자열로 돼있는 설정값 때문이다. 2) > accounts의 urls.py에서 login/, singup/ 으로 접근하면 각각 views의 login(인스턴스 함수?)와 signup(함수)를 보여주도...
1) > sendemail을 보내는 시점과 방법과 관련해서, views.py에서 signup 이후 회원가입 환영 메세지를 띄우는 부분에 작성하거나, models.py에서 User 클래스 아래에 self.pk == None 조건의 save 함수를 정의해서 보내거나, 장고의 postsave 시그널?을 사용할 수 있다. >> 이번 강의에서는 models.py에...
1) > 커스텀 유저를 만들고 회원가입/로그인 기능을 구현하기 위한 accounts 앱을 만들었다. 앱을 만듦과 동시에 내부 urls.py 파일 생성과 설정을 동시에 해주는 것이 좋다. >> 앱도 있고 귀속된 urls.py 파일도 있다면 프로젝트의 urls.py에서 두 조건을 이어주는 작업을 통해서, accounts/로 접근할 경우 accounts의 ur...
1) > static, media 파일을 정적 파일이라하며 데이터가 가공돼서 보여지는 동적 파일과 달리, 미리 저장되어 있어서 페이지가 렌더링될 때 제공된다. >> static은 이미지,css,js 개발자가 심어둔 파일로 같이 식당의 기본 세팅과 같고, media는 model의 파일 필드나 이미지 필드를 통해 저장된 파일, 즉 사용자가 업로드할 수 있는 파...
1) > validator는 되도록 모델에 정의하고, 모델-폼을 만들 때 자연스럽게 가져오는 것이 좋다. 2) > validator는 필드 값을 변경할 수 없으므로 보다 고압적이고, clean은 값을 변경할 수 있고 일회성 검사나 필드 값 변경을 허용하기 때문에 보다 유연하다. 3) > 템플릿에서 사용하는 값은 보통 views.py에서 렌더 시에 ...
1) > 장고의 가장 주목할만한 기능은 model, form, REST framework라고 한다. 여기서 model과 form은 유사한 구성을 갖는데 form은 클라이언트-유저 영역에 집중돼있고, model은 서버-db 영역에 집중돼있다. >> model은 "db에 이런식으로 저장할래." 정도로 생각하면 되는데 form을 model에 맞춰 설계하는 경우가...
1) > forms의 method의 enctype은 POST 타입에서 유효하다. GET 타입에서는 urlencoded 방식이 강제되기 때문이다. urlencoded라 하면, 예를 들어 네이버 검색창에 특정 검색어를 입력했을 때, 주소창에서 query string이 ? 다음에 key=value& 조합이 반복되는 인코딩 방식을 말한다. 강사님께서 '인코딩된 문...