Найти в Дзене
Computer Pro

Дипломная Django. Корзина для анонимных пользователей

Продолжение работы над "корзиной" интернет-магазина. На этот раз нужно сделать чтобы и анонимные пользователи смогли производить действия с "корзиной" (чтение, запись, удаление). 1.GET Итак, запустим сервер и посмотрим что же происходит в "анонимном режиме" Чтобы не было ошибки, нам всё равно нужен пользователь, просто этот пользователь будет анонимным, его необходимо предварительно создать, можно через нашу же систему регистрации пользователей. И после этого можно добавить проверку на то, является ли пользователь анонимным, и если это так - использовать данного пользователя. Задался вопросом: Допустим сайт работает, продаёт какие-то товары, и ведь без регистрации могут заходить на него много пользователей. А корзина имеет связь один к одному с пользователем, не получится ли так что один клиент добавил товары в корзину "под анонимом" и эти товары появились в корзинах у всех анонимов??? Надо бы проверить... Пока же попробуем добавить в метод get, присваивание имени пользователя anonym
Оглавление
Просто фото. Фото автора.
Просто фото. Фото автора.

Продолжение работы над "корзиной" интернет-магазина. На этот раз нужно сделать чтобы и анонимные пользователи смогли производить действия с "корзиной" (чтение, запись, удаление).

1.GET

Итак, запустим сервер и посмотрим что же происходит в "анонимном режиме"

при попытке отбращения к корзине - ошибка
при попытке отбращения к корзине - ошибка
Ошибка нам намекает что юзер не существует и с этим надо что-то сделать...
Ошибка нам намекает что юзер не существует и с этим надо что-то сделать...

Чтобы не было ошибки, нам всё равно нужен пользователь, просто этот пользователь будет анонимным, его необходимо предварительно создать, можно через нашу же систему регистрации пользователей.

вот в базе данных присутствует мой анонимный юзер
вот в базе данных присутствует мой анонимный юзер

И после этого можно добавить проверку на то, является ли пользователь анонимным, и если это так - использовать данного пользователя.

Задался вопросом: Допустим сайт работает, продаёт какие-то товары, и ведь без регистрации могут заходить на него много пользователей. А корзина имеет связь один к одному с пользователем, не получится ли так что один клиент добавил товары в корзину "под анонимом" и эти товары появились в корзинах у всех анонимов??? Надо бы проверить...

Пока же попробуем добавить в метод get, присваивание имени пользователя anonymous, всем кто не прошел процедуру регистрации.

-5

Ну и тут же переходим ко второму пункту - добавление товаров в корзину анонимными пользователями.

2.POST

Тут используется похожий принцип. Так же проверяем, является ли пользователь анонимным...

данный код решает проблему, но есть вопросы... на котороые предстоит найти ответы
данный код решает проблему, но есть вопросы... на котороые предстоит найти ответы

Но как я и писал выше - проблема есть, я открыл сайт в двух разных браузерах в анонимном режиме. Добавил в корзину продукт. И тут же обновил корзину в другом браузере - тут же появился товар, а так быть не должно. Надо придумать какой то уникальный идентификатор сессии, по которому будут отличаться запросы к корзине. Но в условиях задачи ничего не сказано про уникальность сессти и то что один аноним не должен увидеть корзину другого анонима и наоборот.

3.DELETE

Тут уже смесь первого и второго пунктов, только конструкция try - except будет использоваться для всего кода.

-7

В принципе код рабочий, но остаются вопросы. Но пока некогда задумываться о проблеме того, что корзины анонимов могут быть доступны всем другим анонимам.

А дальше надо переходить к оформлению заказа из товара в корзине... Продолжение следует...