【发布时间】:2021-03-08 09:58:18
【问题描述】:
假设我在一个 App 中有 3 个模型,我需要使用 Order 类获取商品的价格。我怎样才能实现这样的功能?另外,由于 OrderItem 具有多对多字段,我想寻求有关如何从所有项目中循环并获取价格的帮助。
模型.py
class Item(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
price = models.FloatField()
class OrderItem(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
item = models.ForeignKey(Item, on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
ordered = models.BooleanField(default=False)
class Order(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
items = models.ManyToManyField(OrderItem)
start_date = models.DateTimeField(auto_now_add=True)
ordered_date = models.DateTimeField(auto_now_add=True)
ordered = models.BooleanField(default=False)
total_price = models.FloatField(null=True, blank=True)
Views.py
def get_price(request):
order = Order.objects.filter(user=request.user, ordered=False)
return render(request, 'ecommpage/history.html', {'order':order})
历史.html
{% extends 'account/base.html' %}
{% load static %}
{% block content%}
{%for order_item in order.item.all() %}
{{order_item.items.price}}
{% endfor %}
{% endblock %}
错误信息:
无法解析余数:'()' from 'order.items.all()'
当我尝试打印函数 get_price 时,它没有显示任何内容。
【问题讨论】:
标签: python django django-orm