【问题标题】:Custom Satchmo Store Configuration / Process自定义 Satchmo 商店配置/流程
【发布时间】:2010-12-12 17:47:23
【问题描述】:

我想创建一个订单以购买这种结构中的多件商品:

Business Data 1
---Product A
---Product B
Business Data 2
---Product A

也就是说,我想销售产品 A、B,但在此之前,我需要在“业务数据”对象中添加额外的聚合数据。那就是:

Business 1: Joe's Plumbing, located at ... ... ...
---Product A, standard ad appearing in category 3, with text "awesome plumbing"
---Product B, cooler ad appearing in category 9, with text "cheap plumbing"
Business 2: Joe's Burgers, located at ... ... ...
---Product A, standard ad appearing in category 4, with text "zzz"

或者,从模型层面来看,更像:

class Business(models.Model):
    name = models.CharField(max_length=255)
    address = models.MagicAddressField()

class Ad(models.Model):
    category = models.ForeignKey(Category)
    text = models.CharField(max_length=255)
    business = models.ForeignKey(Business)

现在,我很确定我想使用Satchmo,而不是重新实现整个购物车后端。但是,我很难理解这种事情。

Satchmo 似乎有多个产品选项,但它们都是“扁平的”。也就是说,虽然我可以很容易地让 Satchmo 允许最终用户购买产品 A 和产品 B,但 db 显示与业务 1 没有任何联系,并且必须在产品 A 和 B 中重复诸如业务名称之类的内容。

我想我可以用我自己的视图/模板来解决这个问题,只要我能获得 satchmo 在订单期间销售的最终“产品实例”,以便拥有 Business 表的外键,我将自己创建.换句话说,我想让 Ad 模型成为一个 satchmo custom product model - 我认为...

但如果我只是将 Ad 更改为:

class Ad(Product):
    objects = ProductManager()

    category = models.ForeignKey(Category)
    text = models.CharField(max_length=255)
    business = models.ForeignKey(Business)

这不是错误的语义吗?那不是说“这个产品类型是和商家x关联的”,而不是“当你买这个的时候,产品的实例会指向商家x”?

我在这里很困惑:-/

【问题讨论】:

    标签: django product satchmo


    【解决方案1】:

    如果我理解正确,我会做这样的事情。

    在业务和产品之间建立多对多关系:

    class Business(models.Model):
        name = models.CharField(max_length=255)
        address = models.MagicAddressField()
        products = models.ManyToManyField(Product)
    

    然后,在您的自定义表单和模板/视图中,您可以为每个企业添加一个字段集,其中包含每个企业的产品/广告。我现在看到的唯一复杂情况是,在填写表格并发送之后,您还需要自定义“结帐流程”来保存通过哪个企业购买的产品的信息......也许这可能是通过产品选项(?)完成,但无论如何这可能意味着大量的定制/使用信号;-) 但我认为这是正确的方向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-05
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 2017-02-10
      • 2018-07-24
      相关资源
      最近更新 更多