返回客户Django订单中的所有orderitems

返回客户Django订单中的所有orderitems,django,django-queryset,Django,Django Queryset,我想退回所有客户订单中的所有项目。 我不知道这是否可能,也不知道我需要如何做,我尝试在视图中使用.get和.filter获取订单,但使用get只能返回一个值 我的模特 class Customer(models.Model): user = models.OneToOneField(Account, on_delete=models.CASCADE, null=True) first_name = models.CharField(max_length=200, null=Tru

我想退回所有客户订单中的所有项目。 我不知道这是否可能,也不知道我需要如何做,我尝试在视图中使用.get和.filter获取订单,但使用get只能返回一个值

我的模特

class Customer(models.Model):
    user = models.OneToOneField(Account, on_delete=models.CASCADE, null=True)
    first_name = models.CharField(max_length=200, null=True)
    last_name = models.CharField(max_length=200, null=True, blank=True)
    phone = models.CharField(max_length=10, null=True, blank=True)
    email = models.EmailField(null=True, blank=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True)

    def __str__(self):
        return str(self.user)

class Category(models.Model):
    name = models.CharField(max_length=200, null=True)
    class Meta:
        verbose_name='categoria'
        verbose_name_plural ='categorias'

    def __str__(self):
        return self.name
class Product(models.Model):
    name = models.CharField(max_length=200, null=True)
    price = models.FloatField(null=True)
    category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True, blank=True)
    description = models.TextField(max_length=500, null=True, blank=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True)
    ventas = models.IntegerField(null=True, blank=True, default=0)
    image = models.ImageField(null=True, blank=True, default='Banner_Cubrebocas.png')

    def __str__(self):
        return self.name

class Order(models.Model):
    STATUS= (
        ('Pending', 'Pending'),
        ('Delivered', 'Delivered')
    )
    customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, null=True)
    #product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True, blank=True)
    date_created =models.DateTimeField(auto_now_add=True, null=True)
    status = models.CharField(max_length=200, null=True, choices=STATUS, default='Pending')
    complete = models.BooleanField(default=False, null=True, blank=True)

    def __str__(self):
        return str(self.id)

    @property
    def shipping(self):
        shipping= False
        orderitems=self.orderitem_set.all()
        for i in orderitems:
            if i.product.digital == False:
                shipping=True
        return shipping

    @property
    def get_cart_total(self):
        orderitems= self.orderitem_set.all()
        total= sum([item.get_total for item in orderitems])
        return total

    @property
    def get_cart_items(self):
        orderitems= self.orderitem_set.all()
        total= sum([item.quantity for item in orderitems])
        return total


class OrderItem(models.Model):
    product= models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
    order= models.ForeignKey(Order, on_delete=models.CASCADE, null=True)
    quantity= models.IntegerField(default=0, null=True, blank=True)
    date_added= models.DateTimeField(auto_now=True, null=True)
我尝试了不同的FOM,但没有得到正确的

def customer(request, pk_test):
    qs = Product.objects.all()
    category_query = request.GET.get('category')
    status_query = request.GET.get('status')
    customer = Customer.objects.get(id=pk_test)
    orders= customer.order_set.all()
    orders_count = orders.count()
    order = Order.objects.filter(customer__id=pk_test, complete=False)
    items = order.orderitem_set.all()
    #myFilter= OrderFilter(request.GET, queryset=orders)
    #orders = myFilter.qs
    categories = Category.objects.all()

    if status_query != '' and status_query is not None:
        items = items.filter(order__status__icontains=status_query)
    if status_query == 'All status':
        items = order.orderitem_set.all()


    context = {
        'customer':customer,
        'orders':orders,
        'orders_count':orders_count,
        #'myFilter':myFilter,
        'categories':categories,
        'order':order,
        'items':items,
    }

    return render(request, 'cuentas/customer.html', context)

我没有意识到你的问题。我看到你得到了你的客户和他的订单以及订单上的物品。有什么问题吗?它没有给我返回一些东西你的观点没有返回或什么?