Модельные отношения и запросы в Django не совсем понятны
что означают эти строки кода в Django View: я не смог найти подробного объяснения, я пришел в Django из Laravel, поэтому я могу понять модели и отношения... спасибо
customer = request.user.customer
product = Product.objects.get(id=productId)
order, created = Order.objects.get_or_create(customer=customer, complete=False)
orderItem, created = OrderItem.objects.get_or_create(order=order, product=product)
customer = request.user.customer
Объект запроса имеет пользователя, пользователь - это аутентифицированный пользователь (если пользователь не аутентифицирован, то вместо него возвращается объект AnonymousUser). В этом примере модель User (т.е. таблица пользователей) имеет поле под названием customer, и мы обращаемся к этому полю.
product = Product.objects.get(id=productId)
Здесь мы просто запрашиваем таблицу Product для конкретного продукта с заданным productId. Обратите внимание, Django выдаст ошибку, если при использовании метода .get() будут возвращены две записи (т.е. если две строки в таблице Product имеют одинаковые productId.
order, created = Order.objects.get_or_create(customer=customer, complete=False)
Далее мы используем метод get_or_create() для поиска order на основе customer (значение которого мы извлекли выше. If an order cannot be found we will create one instead. The value of createdwill be True if a neworder` был создан или False, если он уже существовал.
orderItem, created = OrderItem.objects.get_or_create(order=order, product=product)
Как и выше, мы получаем или создаем OrderItem, используя поля order и product.