소개
게시글
질문&답변
레디스에 대해서 질문드립니다.
확인이 많이 늦었네요. 생각해보지 못한 부분인데 좋은 답변 너무 감사합니다~ 레디스의 도입은 누가봐도 당연한 경우도 있겠지만 반대로 이것저것 테스트해보고 고민한 끝에 도입을 해야하는 경우도 충분히 있겠군요. 앞으로도 좋은 강의 많이 기대하겠습니다. 감사합니다~
- 1
- 3
- 91
질문&답변
시나리오가 여러개면 요청이 분리되는 것 아닌가요?
답변 감사합니다~
- 1
- 4
- 104
질문&답변
프로젝트 코드는 제공해주시지 않는건가요?
찾았습니다~
- 0
- 2
- 119
질문&답변
is_valid()과정에서 validated_data에 데이터가 유실됩니다
찾았네요.. nested_serializer에 있는 id field가 read_only로 설정되어 있어서 , 유효성검사 과정에서 해당 필드가 제거돼서 validated_data에서 삭제되나 봅니다. 당연한건데 왜 생각을 못햇나 싶네요 ㅠㅠ 다음과 같이 OrderedProductSerializer를 수정해주었습니다 #serializers.py class OrderedProductSerializer(serializers.ModelSerializer): product_id = serializers.IntegerField(read_only=False) product_name = serializers.CharField(source='product.product_name',read_only=True) class Meta: model = OrderedProduct fields = [ "product_id","count","product_name" ] 질문을 지울까말까 고민하다가, 선생님께서 봐주신 부분도 있고 혹시나 다른분들이 보실 수 있지 않을까 싶어서 삭제하지 않고 질문은 그대로 남겨두겠습니다. 참고한 사이트) https://stackoverflow.com/questions/28247839/django-rest-framework-deserializing-and-get-the-primary-key-from-validated-data 공식 깃헙 issue) https://github.com/encode/django-rest-framework/issues/2320
- 0
- 2
- 644
질문&답변
메일발송이 되지 않습니다 ㅠㅠ // form.save()에 대하여 질문입니다.
늘 빠른 답장에 감사드립니다... 진심으로 감사드립니다! form부분은 말씀해주신 부분을 보고 잘 이해했습니다! 다만 메일의 경우 스팸메일함을 체크해보고, 다른 메일을 대상으로 메일을 보내보앗는데도 답장이 오지를 않더라구요ㅠㅠ env.bat파일을 다음과 같이 만들어 두었고(뒤에는 좀 가렸습니다.) set SENDGRID_API_KEY=SG.SxTpT-0QTo20ExE9S8ffGw.pm4-3L4VFg... runserver를 돌리기전에 먼저 env.bat를 실행시켜서 돌렸습니다 common.py에서 부여한 설정은 다음과 같습니다 첫줄이 선생님께서 말씀해주신 부분과 공식 홈페이지의 코드가 달라서, 둘다 해보앗는데 둘다 오지 않았습니다 ㅠ # SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY') #공식홈페이지 SENDGRID_API_KEY = os.environ.get('SENDGRID_API_KEY') EMAIL_HOST = 'smtp.sendgrid.net' EMAIL_HOST_USER = 'apikey' # this is exactly the value 'apikey' EMAIL_HOST_PASSWORD = SENDGRID_API_KEY EMAIL_PORT = 587 EMAIL_USE_TLS = True WELCOME_EMAIL_SENDER = "colock12@naver.com" 마지막으로 models.py는 다음과 같습니다 그전 강좌에서 제가 공부한다고 추가로 phone_number라는 필드를 추가하긴했는데, 영향을 끼칠 것 같지는 않아서... 해답을 잘 모르겠네요 ㅠㅠ 뭔가 네트워크의 문제인 건지 class User(AbstractUser): website_url = models.URLField(blank=True, max_length=200) bio = models.TextField(blank=True) phone_number = models.CharField(blank=True,max_length=17) #default = True로 해두면, superusercreater를 할 때 , 값이 자동적으로 채워짐. 없으면 에러가 나더라 def send_welcome_email(self): #render_to_sting 두번쨰 인자의 값들을 넘겨준 값을 반영한, 첫번쨰 인자의 경로에 있는 파일의 내용을 str로 반환 Subject = render_to_string('accounts/welcome_email_subject.txt',{ 'user' : self, }) content = render_to_string('accounts/welcome_email_content.txt',{ 'user' : self, }) sender_email = settings.WELCOME_EMAIL_SENDER send_mail(Subject, content, sender_email, [self.email], fail_silently=False) 늘 좋은 강의와 답변 감사드립니다.
- 0
- 3
- 396
질문&답변
User모델에 대하여 질문입니다.
헉.. 늘 빠른 답변에 정말로정말로 감사드립니다. 실례지만 하나만 더 여쭙고 싶은데요ㅠㅠ 최근에 파이썬을 공부하면서 abc(abstract base class)라는 개념을 배웟습니다. 자료구조의 뼈대가 되는 iterable이나 collections같은 클래스를 관리하면서 오로지 자료구조간의 '위계'를 세우기 위하여 사용하는 추상적인 클래스라고 배웠는데요 user모델역시 models.Model > AbstractBaseUser > AbstractUser > User라는식으로 클래스들간의 위계가 세워지더군요. 여기서 abstact라는 부분이 파이썬의 abc, 그러니까 User모델들의 원형(?)이라는 느낌을 주기 위해서 사용하는 것 같은데 맞을까요?(혹은 파이썬이나 개발전체에서 통용되는 abstact의 개념을 그냥 django가 차용한 것일까요?) 또 AbstractBaseUser같은 경우는 password를 관리하던데, AbstractUser에 비해 관리되는 정보가 조금 더 중요해서 Base라는 개념으로 나누어서 관리하는 것일까요?(혹은 password의 암호화와 같은 복잡한 내부로직이 존재하기 때문에 따로 분리해서 다루는 걸까요?) 가끔식 abstact와 Base라는 단어가 장고에서 보이는 것 같은데, 단어들을 볼때마다 비슷한 뉘앙스로 받아들일 수 있다면 훨씬 학습하기가 쉬울 것 같아서 여쭤봅니다.. 이런부분은 정말 찾아봐도 나오지가 않더라구요.. 어쩌면 정답이 없을 수도 있는 질문같은데, 강사님의 의견이 궁금합니다! 시간 내주셔서 정말 감사합니다!
- 0
- 2
- 226
질문&답변
rest_framework_jwt를 임포트할 수 없다는 에러가 발생합니다
허.. 확인했습니다 ㅠㅠ print문을 넣어도 출력되는 부분이 없었고 cmd에서 python test_token.py를 입력하니까 일단 401을 받았습니다.. 허허.. 진짜 삽질이였네요 ㅠㅠ 감사합니다.. 401을 받은 이유는 한번 더 찾아봐야겠네요.. 혹시 찾게되면 이 댓글을 수정해서 달아놓겠습니다.
- 0
- 5
- 1.7K
질문&답변
rest_framework_jwt를 임포트할 수 없다는 에러가 발생합니다
개인적으로 일이 있어서 답변을 늦게 확인했네요 우선 답변에 감사드립니다. 해당 강의 15:06초 즈음에 선생님께서 test_token.py를 실행시켜서 , 응답을 받으시는 부분이 있습니다. simple_jwt를 적용해서 그부분을 동일하게 수행하고, 또 강의에서 처럼 동일한 딕셔너리 형태의 응답을 받기를 기대했는데 (사진) 이런식으로 수행을 해봐도 아무런 응답이 되돌아 오지 않았습니다. 우선 서버는 켜져있는 것을 확인했고, settings.py역시 방금 한번 더 확인했는데, 선생님께서 바로 위에 올려주신 부분과 동일하게 처리되어 있습니다. 혹시몰라 토큰의 유효기간과 관련된 부분도 훨씬 더 긴 시간의 값을 주었습니다. token은 일단 access token과 refresh token을 다음과 같이 받아서 (사진) test_token.py에 복사해서 넣어두었습니다. 현재 제 test_token.py의 내용은 다음과 같습니다 import requests #JWT JWT_ACCESS_TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjQ4MDk4NzcxLCJpYXQiOjE2NDgwOTUxNzEsImp0aSI6IjMzYTM4ODU1MTI3ZTRhYWJiNzZkNmZhNWI3NTgwZjM1IiwidXNlcl9pZCI6Mn0.Z1mjp40YD6Eg0hQK01-Fp5FzDnk08G0Gfj54F1xtqH8" JWT_REFRESH_TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTY0ODM1NDM3MSwiaWF0IjoxNjQ4MDk1MTcxLCJqdGkiOiIwN2RjMGY0MDZhMDA0YzRiOWVkNmJlN2Q0MTE2NjJjMSIsInVzZXJfaWQiOjJ9.Qtq40KFnvG994OhlwXFoL8f_nPOUR4_lwKlRmqiJiYs" #JWT헤더 #참고로 bearer : JWT 또는 OAuth토큰을 사용한다는 뜻임 jwt_headers={ "Authorization": f"Bearer {JWT_ACCESS_TOKEN}"} res = requests.get("http://localhost:8000/post/1",headers=jwt_headers) print(res) 강의 마지막부분에서 자꾸 막혀서 자꾸 질문드리는게 죄송하네요 ㅠㅠ 늘 답변주셔서 감사합니다!
- 0
- 5
- 1.7K
질문&답변
rest_framework_jwt를 임포트할 수 없다는 에러가 발생합니다
감사합니다 선생님~ 말씀대로 simple_jwt를 적용시켜보았는데요 설정을 하고 토큰을 잘받고, cpython에 진입해서 token을 뜯어보는 것 까지는 다 잘 실행이 되엇는데요 강의중에 test_token.py를 만들고 requests.get을 활용해서 응답을 받는 부분이 안되더라구요 import requests JWT_ACCESS_TOKEN = "ey..." #header jwt_headers={ "Authorization": f"Bearer {JWT_ACCESS_TOKEN}"} res = requests.get("http://localhost:8000/post/1",headers = jwt_headers) print(res) 이렇게 저렇게 찾아보다가 header의 authorization에 bearer를 넣어서(이 bearer가 jwt타입의 토큰을 사용한다는 뜻이더군요!) 하면 다른 분들의 코드에서는 잘 작동하는 것 같은데, 저는 응답이 돌아오지를 않네요.. 토큰의 유효기간 문제는 아닌 듯 합니다. 혹시 괜찮으시면 키워드를 던져주실 수 있으실까요? 어떤 부분을 찾아봐야할지를 잘 모르겠네요 ㅠㅠ
- 0
- 5
- 1.7K
질문&답변
csrf에러가 발생합니다.
해결했습니다. ㅠㅠ 혹시 몰라 글을 남겨둡니다. settings.py(deploy.py)에 다음을 추가하면 됩니다. CSRF_TRUSTED_ORIGINS = ['도메인주소'] EX) CSRF_TRUSTED_ORIGINS = ['https://front.bluemix.net'] https://stackoverflow.com/questions/38841109/csrf-validation-does-not-work-on-django-using-https
- 0
- 1
- 541