在使用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}}代表每个订单中共有多少项订单项