【问题标题】:How to query various models with many-to-many through relation in shopping cart (Django)如何通过购物车(Django)中的关系查询具有多对多关系的各种模型
【发布时间】:2016-07-12 07:19:39
【问题描述】:

我构建了一个购物车,它使用 CartItem 模型作为多对多直通关系,并且当前查询 Product 模型。

但是,我不仅想查询 Product 模型,还想查询大约 5 个其他模型以及存储其他类型产品的位置(由于批量 csv 上传,我需要这样做)。

我的理解是,为类似的事情关联不同模型的唯一方法可能是通过内容类型框架,它允许我对不同的产品进行“标记”。

是否有另一种方法可以创建一个联合/汇总模型,我最终可以将其查询为“一个”模型。或者这样的事情怎么可能?

非常感谢!在我的代码下面:

class CartItem(models.Model):
    cart = models.ForeignKey("Cart")
    item = models.ForeignKey(Product)

class Cart(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
    items = models.ManyToManyField(Product, through=CartItem)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False, )
    updated = models.DateTimeField(auto_now_add=False, auto_now=True, )

    def __unicode__(self):
        return str(self.id)

【问题讨论】:

    标签: python django postgresql cart shopping


    【解决方案1】:

    您可以做的是原始查询,您可以使用原始查询进行连接或将直接 SQL 代码应用于数据库。结果将是一个光标,您可以将其转换为字典或其他结构。

    这个话题:Performing raw SQL queries 谈论原始查询和转换数据的方法。

    希望能帮到你!

    【讨论】:

    • 谢谢!这确实很有帮助。但是,您如何看待外键关系和新模型,因为这些产品类别非常稳定,不会很快改变。
    猜你喜欢
    • 1970-01-01
    • 2015-10-21
    • 2017-08-12
    • 2011-10-09
    • 2014-05-16
    • 2023-04-10
    • 2013-07-04
    • 2021-07-31
    • 2017-06-18
    相关资源
    最近更新 更多