특정 필드의 값이 존재하는지 확인 이메일이 존재하는지를 확인하는 코드 수정안 1에서 flat=True를 해줘야 queryset에 객체가 아닌 리스트가 들어가서 판별을 할 수 있다. flat을 하지 않으면 queryset안에 객체가 있어서 중복된 이메일이 있든 없든 False가 남 수정안 2가 대체로 깔끔하다 #기존 코드 email_list = [] for user in user_group: email_list.append(user.email) if new_email in email_list: return JsonResponse({"message":"ALREADY_EXISTED_EMAIL"},status=409) #수정안1 email_list = User.objects.value_list('email',f..
django 인스타그램 api 시리즈 json통신을 상정한 인스타그램의 백엔드적 기능을 구현 게시물과 관련된 기능 구현 게시물 등록 및 확인 게시물 태그(M:M관계) 댓글(1:M관계) Like(M:M관계) 1. 게시물 등록 및 조회 게시물을 등록하고, (특정 게시물이 아닌)게시물 전체를 조회함 태그가 달릴 수 잇음 modeling 하나의 포스팅에 여러개의 image가 존재할 수 있음 따라서 포스팅과 image의 관계를 1:M으로 묶음 또한 image는 image파일 그 자체를 저장하는 게 아니라 image 파일이 저장된 경로를 저장하는 것임 태그는 게시물과 M:M의 관계임. Many to Many관계의 경우 through속성을 사용해 중간 테이블(여기선 Posting_Tag)를 설정해줄 수 있음 또한 p..
django 인스타그램 api 시리즈 json통신을 상정한 인스타그램의 백엔드적 기능을 구현 follow기능 구현 자신을 참조하는 many to many field가 사용됨 Modeling 기존에 만들었던(바로 그전 포스팅에서) 만들었던 User모델에 Follow를 위한 manytomanyfield 추가 유저들은 서로서로에게 follow할 수 있으며, 한 유저가 다른 유저를 follow한다고 해서, follow된 유저가 follow한 유저를 following하게 되지는 않는다. 따라서 user모델인 자기자신을 참조하며, 관계가 비대칭적이므로 대칭성(symetrical)=Flase 설정 또한 M to M 필드는 원래 자동적으로 MtoM관계를 설명하기 위한 중간table이 자동 생성된다. 그러나 throu..
django 인스타그램 api 시리즈 json통신을 상정한 인스타그램의 백엔드적 기능을 구현 SignUp, SignIn Jwt 토큰 확인을 위한 decorator 1. User : signup 유저 모델링 유저와 관련된, signup 기능을 구현 Coreapp : TimeStampModel 실제로 기능을 구현하기에 앞서서 프로젝트 전반에서 자주 사용될 부분을 따로 모아두기 위한 coreapp을 만듬 생성시각 및 업데이트 시각을 기록하기 위한 TimeStampModel을 생성(이 모델을 다른 앱에서 상속받아 사용) meta속성에 abstract = True를 줌으로써 해당 모델이 상속받을 수 있게 함 #core:models.py from django.db import models class TimeStam..
로그인, 로그아웃 구현 로그아웃시 바로 로그인 창으로 이동 회원가입과 동시에 로그인이 되도록 함 LOGINVIEW 구현 장고에는 로그인을 위한 Loginview가 존재함. 장고가 구현해둔 Loginview에 커마를 할경우 LoginView를 상속받는 클래스를 만들고 수정하면 됨 #accounts/views.py from django.contrib.auth.views import LoginView #방법1. 클래스 상속 >> 커스터마이징 class Login(LoginView): ... 커마없이 장고가 구현해둔 LoginView를 있는 그대로 사용할 경우 as_view를 사용한다 생성자를 활용해, 필요한 정보를 넘겨준다 ex)~as_view(template_name = 'accounts/login_form..
SENDGIRD를 활용해서 회원가입 성공시 이메일 보내기 수정필요함) 실행안되는 부분이 있음 sendgrid api_key 생성 및 입력 샌드그리드 홈페이지 : https://docs.sendgrid.com/ api_key만들기 : settings > api_key > create api_key > restricted access 나 Full Access 선택(restricted access 선택시 Mailsend의 권한을 줘야 함) > done 메일을 발송할 아이디 설정 : settings > sender identity > verify a single sender 추가)나중에 도메인이 생기면 이걸로도 한번 해볼 것 이걸로 등록된 아이디로만 메일을 보낼 수 있다.(생각해 보면 당연함) env.bat파일..
커스텀 유저생성(user model) 아이디 / 암호 / 이메일 /이름을 받아서 회원가입 구현 1. Usermodel 생성 accounts app 생성 accounts app의 models.py에서 Usermodel을 생성 Abstractuser를 상속받았음 > AbstractUser에서 제공하는 필드들(first_name,last_name,email....)을 그대로 사용 #accounts/models.py from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): website_url = models.URLField(blank=True, max_length=200) bi..
인프런의 '작정하고 장고! Django로 pinterest따라만들기 : 바닥부터 배포까지' 라는 강의를 들으면서 작성 해당 강의는 django, docker , aws등을 활용하여 장고홈페이지를 만들고 배포하는 것을 목적으로 함 (0)은 완강 후 혼자 전체과정을 스스로 만들어볼 때 참고할 수 있도록, 해당강의를 들으면서 어렵거나 헷갈렷던 부분에 대해 정리해둘 예정 이 포스팅의 내용은 다음과 같음(계속 추가 예정) pycharm 스펠링체크 없애기 django envrion git 다른곳에서 작업하려면?(with git) 구글폰트 , 폰트스트랩 적용 스테틱파일 적용 Model,DB CSS : display 속성 CSS : size 속성 파이참 - 디버그 Django 의 CRUD! Login / Logoutv..