Django中如何在前臺顯示一對多的關係欄位
阿新 • • 發佈:2018-11-09
在使用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}}代表每個訂單中共有多少項訂單項