【问题标题】:Get shipping address for a basket in django oscar在 django oscar 中获取篮子的送货地址
【发布时间】:2014-12-24 05:49:23
【问题描述】:

我正在为奥斯卡写一个视图。我有'basket' 对象。如何访问购物篮的shipping_address

【问题讨论】:

    标签: python django django-oscar


    【解决方案1】:

    购物篮没有送货地址,直到成为订单才没有送货地址。

    您可以从模型中看到这一点:

    https://github.com/django-oscar/django-oscar/blob/1.0.1/oscar/apps/basket/abstract_models.py
    grep for 'ship'...没有匹配项

    https://github.com/django-oscar/django-oscar/blob/1.0.1/oscar/apps/order/abstract_models.py#L68
    AbstractOrder 模型具有order.ShippingAddress 模型的外键

    【讨论】:

    • 但是送货地址在预览页面上是可见的。我想要它来计算特定国家/地区的运费。
    • 购物篮和收货地址之间没有直接联系...在我看来它们是两个独立的实体,它们在 PaymentDetailsView 中组合在一起,负责创建一个新的 Order实例
    • 那么,是否可以从 PaymentDetailsView 获取送货地址?
    • 看起来这可能是您需要的方法:github.com/django-oscar/django-oscar/blob/1.0.1/oscar/apps/… 可用于从该CheckoutSessionMixin 继承的任何结帐视图
    【解决方案2】:

    您应该覆盖 Repository.get_available_shipping_methods as recommended

    动态实现可以参考AbstractWeightBased shipping method

    您可能还想通过django-oscar-shipping 结帐their implementation / code

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 2014-08-30
      • 2016-12-20
      相关资源
      最近更新 更多