Возможно ли сделать "корзину" с помощью django Class Based View?
Я пытаюсь сделать простой сайт электронной коммерции и следую некоторым учебникам.
Однако автор книги использовал сложное представление на основе функций, чтобы сделать функцию корзины...
здесь куча сессионных вещей... и я не понимаю логики...
и я пытаюсь думать в другую сторону...
как насчет использования базы данных для хранения всех данных, связанных с корзиной, и
использовать CBV для его создания?
например,
CartListView для просмотра содержимого корзины, и CartUpdateView для изменения количества..
тогда это будут две разные страницы? отдельная страница, на которую пользователь должен перейти
разная страница для изменения значения?
помогите мне T T
Вы можете получить доступ к сессии в любом виде CBV как self.request.session
, и "корзина" обычно хранится в ней.
Вам, конечно, нужно реализовать CartListView
, чтобы увидеть, что в ней находится, или, возможно, CartEditView
, чтобы показать корзину с возможностью редактирования количества и удаления всего, что не должно там находиться.
Добавление товаров в корзину вполне может быть кнопкой "Добавить" в ProductDetailView или множеством кнопок добавления в ProductListView. Вы можете добавить метод обработки POST к этим представлениям, которые по умолчанию предназначены только для чтения (GET-only). Или вы можете сделать их FormViews, даже если форма будет скрыта и заполнена/поставлена JS, а не покупатель будет делать что-либо, кроме нажатия кнопки "Добавить".
И тогда появится CheckoutView.
Проверьте https://djangopackages.org/ (введите "cart" в поле поиска). Это подкинет несколько вещей, связанных с корзинами, которые могут быть кодом, который вам нужен, или источник которого может быть ценным учебным ресурсом, прежде чем вы закончите создание своего собственного.