如何解决Django:多对多关系的值列表
我想知道为什么无法使用values_list
时获得与QuerySet中显示的项目名称相同的项目名称。
print(self.prd_obj.basket.values_list())
<QuerySet [(2,27,Decimal('20.00')),(1,23,Decimal('12.50')),(3,28,Decimal('15.00'))]>
(以上理解为ManyToMany列表中的ID 2项目,该项目又指全局项目列表中的ID27。在全局项目列表中,ID 27是成本为20的本田,ID 28为成本为15,id为23的是福特,价格为12.50)
当我要价时,再次出现相同的订单,如下所示。
print(self.prd_obj.basket.values_list('price'))
<QuerySet [(Decimal('20.00'),),(Decimal('12.50'),(Decimal('15.00'),)]>
但是,在(通过“项目”字段)询问品牌时,订购顺序不同。 稍后在重新组装这些值时,本田现在的成本为15,马自达12.50和福特20.00
print(self.prd_obj.basket.values_list('items__brand'))
<QuerySet [('Ford',('Mazda',('Honda',)]>
这是购物篮的模型,我将其称为ManyToMany字段,因为我需要一个模型来将商品与价格联系起来。
class ShoppingBasketItem(models.Model):
items = models.ForeignKey(Item,on_delete=models.SET_NULL,blank=True,null=True)
price = models.DecimalField(decimal_places=2,max_digits=5,null=True)
为什么会发生这种情况,有没有更好的方法可以在“购物篮”中引用商品及其价格?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。