如何解决如何通过一个查询从两个表中获取数据
**我只需要在查询中再添加一个表联接** 我想获得具有订单详细信息和送货地址的登录用户的销售。 我通过此查询获取当前用户的销售额,但我也想获取送货地址。
orderitems = OrderItem.objects.filter(
product__user=request.user,order__complete=1).order_by('-date_orderd')
现在我还想从Shippingaddress模型中获取地址,城市和州。 我附上了下面的模型。
我的模特: 订单型号:
class Order(models.Model):
user = models.ForeignKey(
User,on_delete=models.CASCADE,blank=True,null=True)
date_orderd = models.DateTimeField(auto_now_add=True)
complete = models.BooleanField(default=False,null=True,blank=False)
transaction_id = models.CharField(max_length=200,null=True)
# product = models.ManyToManyField(OrderItem)
def __str__(self):
return str(self.id)
订购商品型号:
class OrderItem(models.Model):
product = models.ForeignKey(
Product,null=True)
order = models.ForeignKey(
Order,on_delete=models.SET_NULL,null=True)
quantity = models.IntegerField(default=0,blank=True)
date_orderd = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(
User,null=True)
price = models.FloatField(blank=True,null=True)
def __str__(self):
return str(self.product)
送货地址模型:
class ShippingAddress(models.Model):
user = models.ForeignKey(
User,null=True)
name = models.CharField(max_length=150)
address = models.CharField(max_length=150)
city = models.CharField(max_length=150)
state = models.CharField(max_length=150)
zipcode = models.CharField(max_length=150)
date_orderd = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.address
解决方法
您要查找的是“使用Django在一个查询中从多个表中选择”。您可以查看答案here。
,为什么不添加下面的另一个查询
shp_address = ShippingAddress.objects.filter(product__user=request.user)
,如果需要,作为上下文的一部分发送到客户端,请参见下文
context = {
'orderitems': orderitems,'shp_address': shp_address
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。