Три или четыре раза пересматривал лекции по созданию форм в Django. Долго не мог приступить к реализации домашнего задания. То одно, то другое, то третье мешало сесть за уроки...
В общем, как-то так:
Задание 1. Создание продуктов
Что нужно сделать
Добавьте форму на основе ModelForm для создания продукта.
Напишите шаблон для создания продукта.
Добавьте view-функцию для создания продукта.
Реализуйте логику для создания продукта при помощи формы.
Ну тут всё просто - просто переписать код из лекции.
А вот с реализацией второго задания возникли трудности.
Задание 2. Создание заказов
Что нужно сделать
Добавьте форму на основе ModelForm для создания заказа.
Напишите шаблон для создания заказа.
Добавьте view-функцию для создания заказа.
Реализуйте логику для создания заказа при помощи формы.
Второе задание начал делать по аналогии с первым, всего-то надо поменять "Product" на "Order" там, где это надо. Написал код, запустил и....
По-идее тут должны быть другие поля, но что-то пошло не так, и мой подход "наскоком всех победить не сработал". Следовательно нужно подумать - как с помощью формы, создать новый заказ. Для понимания процесса зашел в "админку" Django. Открыл "Orders", там есть кнопочка "Add order" - нажал:
И вот у меня уже есть второй заказ в админке:
Проверим как он отображается в order-list, всё хорошо, новый заказ появился:
Итак, для реализации формы нам нужно четыре поля:
- Delivery Addres (адрес доставки)
- Promocode (промокод для скидки)
- user (поле для выбора пользователя)
- Products (поле выбора продуктов)
И все эти поля Django может спокойно сделать за нас, при том связаться с базой данных, выбрать из нее всё что требуется и создать то что надо!
Собственно говоря - я просто был слегка не внимателен... Делая это задание по аналогии с первым я просто не заметил одной важной детали:
Как только я поменял ProductForm() на OrderForm(), так всё и заработало, появились все поля которые я описал выше.
Написал какой-то адрес, какой-то промокод, user - в данной базе данных только admin (с именем Евгений, в настройках), выбрал какие-то продукты и нажал "Create", вот собственно и результат этой работы:
Две записи у меня уже были и вот, появилась третья! Все заработало можно работу отправлять куратору на проверку.
На истину не претендую, это моя реализация домашнего задания. Надеюсь кому-то это пригодится. Хотя надо до таких вещей доходить своим умом. Но иногда так трудно сдвинуться с мёртвой точки!
За лайк и спасибо в комментах буду более чем благодарен!