我是django的新手,目前正在制作一个管理面板,可以在其中查看用户订单。
我根据以下OrderItem模型处理订单
class OrderItem(models.Model):
customer = models.ForeignKey(
User, on_delete=models.SET_NULL, blank=True, null=True)
product = models.ForeignKey(
Product, on_delete=models.SET_NULL, blank=True, null=True)
quantity = models.IntegerField(default=0, null=True, blank=True)
date_added = models.DateTimeField(auto_now_add=True)
和以下ShippingAdress模型中的运输信息
class ShippingAddress(models.Model):
customer = models.ForeignKey(
User, on_delete=models.SET_NULL, blank=True, null=True)
address = models.CharField(max_length=200, null=True)
city = models.CharField(max_length=200, null=True)
state = models.CharField(max_length=200, null=True)
zipcode = models.CharField(max_length=200, null=True)
Views.py
orders=OrderItem.objects.select_related('customer')
context={
'orders':orders,
}
return render(request, 'index.html', context)
在我的html中,我要打印每个客户的ShippingAdress数据。我在想类似下面的内容,但是我卡住了,它不起作用。
{% for order in orders %}
<td>{{order.customer.address}}</td>
<td>{{order.customer.city}}</td>
{% endfor %}
实现此目的的正确方法是什么?
添加related_name
到您的ShippingAddress
class ShippingAddress(models.Model):
customer = models.ForeignKey(
User, on_delete=models.SET_NULL, blank=True, null=True, related_name="addresses")
并像这样在您的模板中使用
<td>{{order.customer.addresses.first.address}}</td>
与first
您一起获得第一个地址,并与all
所有这些都一起。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句