반응형
결론적으로 이야기하지만 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':
# ...
FoodList_results = FoodList.objects.filter(a,b,c,d,e)
FoodList_results_json = json.dumps(list(FoodList_results.values())) # QuerySet을 JSON 문자열로 변환
response = redirect('main')
response.set_cookie('FoodList_results', FoodList_results_json) # 쿠키에 JSON 문자열 저장
return response
else:
return render(request, 'content/main.html', {'FoodList_results':FoodList_results})
FoodList_results가 쿠키에 저장하고 싶은 QuerySet입니다. 이 값을 values() 메서드로 쿼리 셋에서 값 목록으로 변환 후 json.dumps() 함수로 JSON문자열로 변환한 후 쿠키에 저장해 주었습니다.
반응형
'BackEnd > Django, DRF' 카테고리의 다른 글
user/models.py - user모델 만들기 (0) | 2023.03.21 |
---|---|
HTML에서 보낸 데이터 어드민 사이트에서 수락 거절 기능 (0) | 2023.02.23 |
[Django] render 와 redirect 의 차이점과 사용법 (0) | 2023.02.23 |
Forbidden (CSRF token missing or incorrect.) 해결 방법 (0) | 2023.02.20 |
Templateview에서 Html로 DB값 전달하기 (0) | 2023.02.14 |