Здравствуйте.
Есть задача, выводить список заказанных товаров. На данный момент выводится информация просто о заказе. (id например). Теперь нужно добавить вывод название заказанного продукта. Нужно что-то прописать во views, но ума не приложу что именно
models.py
from django.db import models
import django
from shop.models import Product
from django.contrib.auth.models import User
class Order(models.Model):
nickname = models.ForeignKey(User, on_delete=models.CASCADE, default=False)
product = models.ForeignKey(Product, on_delete=models.CASCADE, default=False)
email = models.EmailField()
postal_code = models.CharField(max_length=20)
city = models.CharField(max_length=100)
street = models.CharField(max_length=100, default="s")
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
class Meta:
ordering = ('-created',)
verbose_name = 'Заказ'
verbose_name_plural = 'Заказы'
def __str__(self):
return 'Order {}'.format(self.id)
def get_total_cost(self):
return sum(item.get_cost() for item in self.items.all())
views.py
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save(commit=False)
order.nickname = request.user
"Вот здесь ,мне кажется, нужно что-то написать, для привязки id продукта к конкретному пользователю"
order.save()
for item in cart:
OrderItem.objects.create(order=order,
product=item['product'],
price=item['price'],
quantity=item['quantity'])
# очистка корзины
cart.clear()
return render(request, 'orders/order/created.html',
{'order': order})
else:
form = OrderCreateForm
return render(request, 'orders/order/create.html',
{'cart': cart, 'form': form})
Здесь передается в шаблон информация о заказе, внимание, о самом заказе, о его наличии. Не имя продукта ,которое нужно.
def my_orders(request):
orders = Order.objects.filter(nickname=request.user)
"Здесь тоже нужно добавить переменную, которая бы запрашивала конкретный id товара"
pdoruct = ...........
assert isinstance(request, HttpRequest)
return render(
request,
'app/my_orders.html', {'orders': orders,}
)
my_orders.html
{% for order in orders %}
<ul>
<li>
{{order.id}}
</li>
<li>
{{order}}
</li>
</ul>
{% endfor %}
Нужно,чтобы помимо ID заказа , передавалось и наименование заказанного товара.
Прошу, подскажите.