프로젝트를 하면서 option에서 선택한 값을 어드민 사이트로 보낸 후 어드민 사이트에서 수락을 누르면 DB에 저장이 되고 거절을 누르면 삭제되는 기능을 구현하였다. HTML 구조 메인분류 밥 빵 면 구현 과정 선택된 값들을 POST 요청으로 서버로 보내기 선택된 값들을 서버로 보내기 위해서는 많은 방법이 있지만 나는 버튼에 onclick 이벤트를 주어 자바스크립트를 통해서 서버로 보내주었다. function sendData() { var name = document.querySelector('.recommend_name').value; var main = document.querySelector('[name=main]').value; var soup = document.querySelector('[na..
BackEnd
결론적으로 이야기하지만 QuerySet의 데이터들은 바로 쿠키에 저장할 수 없습니다. 쿠키는 일반적으로 간단한 숫자나 문자만 저장할 수 있습니다. 따라서 QuerySet을 쿠키에 저장하기 위해선 문자열로 변환 후 쿠키에 저장해야합니다. 아래의 코드는 프로젝트 중 QuerySet을 쿠키에 저장하기 위해서 사용한 방법입니다. 주석 처리 된 부분만 유심히 보면 됩니다. import json class Main(TemplateView): template_name = 'content/main.html' def get(self, request): return render(request, 'content/main.html') def post(self, request): if request.method == 'POST..
render render(request, template_name, context=None, content_type=None, status=None, using=None) render은 위와 같이 사용할 수있습니다. request와 template_name은 필수적으로 입력해줘야 하는 요소입니다. request는 변경해주지 않고 그대로 사용하면 되고 template_name는 불러오고 싶은 템플릿을 기재해 줍니다. 이때 넘겨주고 싶은 데이터를 딕셔너리 형태로 context로 넘겨줄 수 있습니다. redirect redirect(to, permanent=False, *args, **kwargs) redirect는 위와 같이 사용할 수 있습니다. to는 render의 template_name와 비슷한 부분인..
django를 통해 프로젝트를 진행하던 중 ajax를 통해서 views.py로 데이터를 보내는 과정에서 Forbidden (CSRF token missing or incorrect.)과 같은 에러가 발생하고 아래와 같은 방법으로 해결하였다 1. 특정 view에 csrf 적용 from django.views.decorators.csrf import csrf_exempt @csrf_exempt def Main(request): return HttpResponse('success') 이 방법은 별로 좋은 방법이 아니다. 2. Html 파일 수정 html의 header 부분에 위 코드를 넣어주면 된다.
DB에 저장되어 있는 정보를 Views.py에서 templateview를 이용하여 html에 출력해 주는 기능이다. Views.py 구조 class Main(TemplateView): template_name = 'content/main.html' queryset = FoodList.objects.all()# quertset에 FoodList의 모든 객체를 넣어준다 def get(self, request, *args, **kwargs): print(request.GET) ctx = { 'FoodLists': self.queryset# ctx에 FoodLists안에 FoodList의 내용을 넣어준다 } return self.render_to_response(ctx)# ctx를 반환 HTML 구조 {% fo..