1. 程式人生 > >Django中如何在前臺顯示一對多的關係欄位

Django中如何在前臺顯示一對多的關係欄位

在使用Django寫python-web專案時遇到了問題個大家分享一下:
如何才能在前臺顯示一對多的關係,例如存在以下關係:

from django.db import models
#訂單詳情
class OrderInfo(models.Model):
    oid=models.CharField(max_length=20,primary_key=True)
    user=models.ForeignKey('sh_user.UserInfo',on_delete=models.CASCADE)
    odate=models.DateTimeField(auto_now=True)
    oIsPay=models.BooleanField(default=False)
    ototal=models.DecimalField(max_digits=6,decimal_places=2)
    oaddress=models.CharField(max_length=150)
    ocontent=models.CharField(max_length=40)
    ousername=models.CharField(max_length=10)
#每個訂單中的訂單項
class OrderDetail(models.Model):
    goods=models.ForeignKey('sh_goods.GoodsInfo',on_delete=models.CASCADE)
    order=models.ForeignKey('OrderInfo',on_delete=models.CASCADE)
    price=models.DecimalField(max_digits=5,decimal_places=2)
    count=models.IntegerField()

如果我們現在前臺模板頁面中取得訂單項中的訂單詳情資訊
只需要用 {{orderdetail.order}}即可
如果想取得訂單詳情中的所有訂單項可以用{{order.orderdetail_set.all}}並使用for迴圈遍歷:
{% for d in p.orderdetail_set.all %}
其中{{order.orderdetail_set.count}}代表每個訂單中共有多少項訂單項