Как отобразить объект shipping address_one, связанный с конкретным заказом

Итак, у клиента есть страница заказа, где я хочу отобразить детали заказа, а именно название продукта, дату заказа, статус и место доставки, сейчас у меня все работает, кроме места доставки("address_one"). Я буду очень признателен, если кто-нибудь сможет помочь, thx!

models.py

    class Order(models.Model):
        customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True)
    
    class OrderItem(models.Model):
        product = models.ForeignKey(Product, on_delete=models.SET_NULL, blank=True, null=True)
        order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True)
    
    class Product(models.Model):
        name = models.CharField(max_length=150)
        description = models.TextField()
    
    class ShippingAddress(models.Model):
        customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, blank=True, null=True)
        order = models.ForeignKey(Order, on_delete=models.SET_NULL, blank=True, null=True)
        address_one = models.CharField(max_length=200)

views.py

    @login_required
    def orders(request):
        orderitems = OrderItem.objects.filter(order__customer__user=request.user)

        #how do I get the shipping address associated with order
        shipping = ShippingAddress.objects.filter()

        context = {"orderitems": orderitems, "shipping": shipping}

HTML

        {% for orderitem in orderitems %}
            <div class="order-data-view">
                
                <div class="order">{{ orderitem.product.name }}</div>
                <div class="date">{{ orderitem.date_added }}</div>
                <div class="status">dummydata</div>
                <div class="delivering-to">{{ shipping.address_one }}</div>

            </div>
        {% endfor %}

enter image description here

Попробуйте это:

views.py

@login_required
def orders(request):
   orderitems = OrderItem.objects.filter(order__customer__user=request.user).prefetch_related('order__shippingaddress_set')
   context = {"orderitems": orderitems}

html(template)

{% for orderitem in orderitems %}
    <div class="order-data-view">
       <div class="order">{{ orderitem.product.name }}</div>
       <div class="date">{{ orderitem.date_added }}</div>
       <div class="status">dummydata</div>
       <div class="delivering-to">{{ orderitem.order.shippingaddress_set.all.0.address_one }}</div>
    </div>
{% endfor %}
Вернуться на верх