Django/DRF
QuerySet의 값들을 쿠키에 저장하기
Jong_seoung
2023. 2. 23. 09:59
반응형
결론적으로 이야기하지만 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문자열로 변환한 후 쿠키에 저장해 주었습니다.
반응형