본문 바로가기

Django13

[Django error] 왜 base.html(템플릿 상속)을 쓰면 소셜로그인이 제대로 안 될까 저번에 만들었던 프로젝트에서 템플릿상속(파일이름 base.html)을 썼더니, 소셜로그인이 제대로 되지 않아서 애를 먹었다. base.html을 만들면, '도메인/accounts/logout'으로 이동했을때, 장고 팝업창이 아닌, base.html의 내용만 덩그라니 떠서 로그아웃도, 회원가입도 할 수 없었다. 난 템플릿 상속때문이라고 생각했는데, 문제는 base.html의 이름에 있었다... 이상하게 템플릿상속을 쓰든 안쓰든 간에(settings.py에 템플릿 상속할 파일의 위치를 알려주지 않아도), 어딘가에 base.html을 만들면 이런 현상이 생긴다. 그럴때는 다른 파일이름으로 바꾸어서 (예를들면 tem.html 이라던가 아무거나), 템플릿 상속을 시켜주면 해결된다. 2020. 8. 6.
[Django error] '모델이름' object is not iterable '모델이름' object is not iterable 아까 migrate를 해줬다고 생각했는데, 내가 뭔가 수정해주고 migrate를 다시 안해준 모양이다.. python manage.py makemigrations python manage.py migrate 해주니 해결 2020. 7. 22.
[Django note] #5 내가 보려고 만드는 장고 노트(썸네일 구현) 썸네일을 구현하기 위해 media를 올릴 수 있게 먼저 만들어주자. 복습 겸 media 구현하는 과정 1. views.py에 모델을 만들자 #views.py class Pictures(models.Model): text=models.TextField() img=models.ImageField(upload_to='blogimg') 2. settings.py에서 미디어 url, root 설정 #settings.py MEIDA_URL = 'media' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 3. urls.py에 settings와 static 임포트하고, 경로 병렬적으로 추가 #urls.py from django.conf import settings from django.. 2020. 7. 22.
[Django note] #4 내가 보려고 만드는 장고 노트(소셜 로그인 구현) 1. pip install django-allauth로 allauth 설치 2. settings.py에 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.sites', #얘 추가 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'matapp.apps.MatappConfig', #allauth 추가 'allauth', 'allauth.account', 'allauth.socialaccount', #provider : 소셜 로그인을 제공해주는 업체(ex 카카.. 2020. 7. 20.
[Django 에러] The view mediapractice.views.create didn't return an HttpResponse object. It returned None instead. 오류 내용: The view mediapractice.views.create didn't return an HttpResponse object. It returned None instead. view.create가 HttpResponse 객체를 반환하지 않음. 아무것도 리턴하지 않았다. 어쩌다: forms를 이용해서 이미지 올리는 기능을 만들려다 생긴 오류... 오타 없는지, 함수, 모델, 모델폼, html 다 꼼꼼히 봤는데 못 찾고, 깃허브에서 전에 내가 썼던 코드를 봤다. 원인: 폼 태그 안에 enctype="multipart/form-data"를 써주지 않아서 생긴 오류였다... 를 라고 고쳐주니 잘 돌아갔다. 2020. 7. 18.
[Django 에러] CSRF verification failed. Request aborted. CSRF 검증 실패. 요청이 중단됨. create.html의 폼 태그 안에 {%csrf_token%}을 넣어주지 않아서 생긴 문제인듯 하다. *참고 -CSRF 공격이란? Cross Site Request Forgery. 웹 어플리케이션의 취약점 중 하나이다. 인터넷 사용자(희생자)가 자신의 의도와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 웹 사이트에 요청하게하는 공격이다. -{%csrf_token%} CSRF 공격을 막는 코드이다. 클라이언트에서 해당 페이지를 접속하면, Django에서 csrf token을 보내어 cookie에 저장하고, POST로 전송할 때 csrf token이 함께 전송되어 인증하는 방식이다. token이 정보를 가지고 있음. {%csrf_token%}은 그냥 보안.. 2020. 7. 18.