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

猜你喜欢

转载自blog.csdn.net/weixin_39106137/article/details/83338227
今日推荐