Итак, я настроил Django rest framework в качестве бэкэнд-API для сайта электронной коммерции.Веб-сайт отображается через интерфейс React, который не обслуживается бэкэндом django.
В настоящее время я запускаю и бэкэнд Django, и интерфейс React со своих локальных серверов разработки (http://127.0.0.1:8000 и http://127.0.0.1:3000 соответственно).В будущем они будут находиться в отдельных доменах, вероятно.
Когда я устанавливаю сеанс в представлении и читаю содержимое в другом, это работает, если я просто набираю URL для создания и чтения непосредственно в мойбраузер (только для тестирования).Но когда я получаю доступ к бэкэнду через мой веб-интерфейс, сеансы больше не могут быть доступны или не сохраняются.Что произойдет, это то, что я получаю KeyError при попытке получить доступ к данным, которые я установил в предыдущем представлении.
Я думаю, это связано с тем, что я прочитал некоторое время назад, но мне труднонайти правильную информацию о том, как с этим работать.Связано ли это с файлом cookie, когда идентификатор сеанса недоступен для внешнего интерфейса, а доступен только для самого бэкэнда?
Основной вопрос: Я хотел бы знать, как я могу работатьс сеансами, используя вышеуказанную настройку, для хранения корзины покупок.
Мой бэкэнд-код, на случай, если кто-то спросит:
from django.http import HttpResponse
def cart_add(request, product_id, update, quantity):
request.session['one'] = 'created through "cart_add" view'
return HttpResponse("Created a session - cart_add")
def create(request):
request.session['one'] = 'created through "read" view'
return HttpResponse("Created a session - create")
def read(request):
print(request.session['one'])
Я удалил некоторые ненужныекод.
- Представление cart_add вызывается из внешнего интерфейса React с использованием вызова ajax (axios).
- Представление создания и чтения, которое я вызывал, вводил их URL-адреса непосредственно в браузер.(Все это делается для целей тестирования, просто убедитесь, что сеансы работают, прежде чем я начну писать реальный код.)