Вот сделаны операции с аунтефикацией пользователя, а именно:
- Вход пользователя в систему
- Выход пользователя из системы
- Регистрация нового пользователя
- Редактирование профиля пользователя. Данный пункт включает в себя:
- Замену аватарки по-умолчанию на ту которую захочет пользователь
- Смену пароля
Продолжаем наш проект интернет-магазина. Я думаю самым правильным будет отработать реализацию нескольких конечных точек, которые в данный момент считаются "не найденными", дабы в перую очередь избавиться от ошибки:
Самое простое это создать заглушку первой конечной точки с ошибкой и посмотреть что будет, для этого я создал приложение shopapp (ну раз на лекциях использовалось именно это имя магазина, то зачем я буду менять то что работает!?). Создам класс отвечающий за обработку /api/categories в файле views.py приложения shopapp и подключу его в /api/urls.py
Итак, теперь у меня есть минимальный код который закрывает "not Found: /api/categories что изменилось?!
Чтобы реализовать получение категорий, нужно сделать модель этих самых "категорий", а какие же должны быть поля у этой модели?! Это можно посмотреть в swagger.yaml
Грубо говоря модель Category будет состоять из двух полей "title" и "image", "id" - это автоматическое поле (само создается при создании категорий). Какие-то решения, я возьму из того кода, который отвечает за работу с пользователем. Но тут еще должна быть вторая модель - "Subcategory", которая будет копией "Category", но с другим именем... Создадим эти две категории:
Класс "Subcategory" описывать не стал, ибо он точная копия класса "Category".
Теперь нужно сделать получение категорий товара и в ней получение субкатегорий (подкатегорий), думаю это сделать с помощью вложенных циклов...
Ну и сразу сделать в "админке" доступ к созданию и редактированию категорий и подкатегорий.
Тут же зашел в админку, добавил категорию "Смартфоны" и назначил ей картинку:
Обновим главную страницу магазина и посмотрим, есть ли какие нибудь изменения, или наоборот - ошибки в PyCharm... Хотя надо еще парочку добавить категорий (основные подкатегории смартфонов: эппл и андроид). Добавил.
Ошибок теперь нет, но и на главной странице ничего не изменилось... Надо хотя бы принты поставить во вьюшку и посмотрить, выдаются ли у меня "категории" и "подкатегории"
Мда, выдал только категории, а где же подкатегории?! Да и у картинки категории нет номера pk... Будем искать!
99% ошибок от невнимательности и спешки, вот и у меня так же получилось. Когда скопировал один в один класс "Category", и вставил с мыслью что ща только "category" поменяю на "subcategory", и вот результат - не исправил "category_image_directory_path".
А None было вместо pk, потому что когда мы создаем новую "категорию" или "подкатегорию", то объект еще не создан и админка не знает какой pk присваивать, поэтому она ставит None. А только после сохранения появляется у созданного объекта - pk! И тогда можно открыть созданный объект и отредактировать путь до картинки.
Ну в общем часть работы выполнена. Заработали категории и подкатегории, но на внешний вид страницы это пока не влияет. Будем продолжать.
Теперь при обработке эндпойнта /api/categories у нас есть объект JsonResponse в котором есть данные по всем категориям и подкатегориям.
PS. Это всего лишь мои "зарисовки" и мысли в процессе написания кода... Может кого-то выведет из тупика.
Продолжение следует