当前位置: 首页>>代码示例>>Python>>正文


Python AddressManagement.save方法代码示例

本文整理汇总了Python中lfs.addresses.utils.AddressManagement.save方法的典型用法代码示例。如果您正苦于以下问题:Python AddressManagement.save方法的具体用法?Python AddressManagement.save怎么用?Python AddressManagement.save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在lfs.addresses.utils.AddressManagement的用法示例。


在下文中一共展示了AddressManagement.save方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: addresses

# 需要导入模块: from lfs.addresses.utils import AddressManagement [as 别名]
# 或者: from lfs.addresses.utils.AddressManagement import save [as 别名]
def addresses(request, template_name="lfs/customer/addresses.html"):
    """
    Provides a form to edit addresses in my account.
    """
    customer = lfs.customer.utils.get_or_create_customer(request)

    if request.method == "POST":
        iam = AddressManagement(customer, customer.default_invoice_address, "invoice", request.POST)
        sam = AddressManagement(customer, customer.default_shipping_address, "shipping", request.POST)

        if iam.is_valid() and sam.is_valid():
            iam.save()
            sam.save()

            customer.sync_default_to_selected_addresses(force=True)

            return lfs.core.utils.MessageHttpResponseRedirect(
                redirect_to=reverse("lfs_my_addresses"),
                msg=_(u"Your addresses have been saved."),
            )
        else:
            msg = _(u"An error has occured.")
    else:
        msg = None
        iam = AddressManagement(customer, customer.default_invoice_address, "invoice")
        sam = AddressManagement(customer, customer.default_shipping_address, "shipping")

    return lfs.core.utils.render_to_message_response(
        template_name, RequestContext(request, {
            "shipping_address_inline": sam.render(request),
            "invoice_address_inline": iam.render(request),
            "current": "addresses"
        }),
        msg=msg,
    )
开发者ID:naro,项目名称:django-lfs,代码行数:37,代码来源:views.py

示例2: one_page_checkout

# 需要导入模块: from lfs.addresses.utils import AddressManagement [as 别名]
# 或者: from lfs.addresses.utils.AddressManagement import save [as 别名]
def one_page_checkout(request, template_name="lfs/checkout/one_page_checkout.html"):
    """
    One page checkout form.
    """
    cart = lfs.cart.utils.get_cart(request)
    if cart is None:
        return HttpResponseRedirect(reverse('lfs_cart'))

    shop = lfs.core.utils.get_default_shop(request)
    if request.user.is_anonymous() and shop.checkout_type == CHECKOUT_TYPE_AUTH:
        return HttpResponseRedirect(reverse("lfs_checkout_login"))

    customer = lfs.customer.utils.get_or_create_customer(request)
    invoice_address = customer.selected_invoice_address
    shipping_address = customer.selected_shipping_address
    bank_account = customer.selected_bank_account
    credit_card = customer.selected_credit_card

    if request.method == "POST":
        checkout_form = OnePageCheckoutForm(data=request.POST)
        iam = AddressManagement(customer, invoice_address, "invoice", request.POST)
        sam = AddressManagement(customer, shipping_address, "shipping", request.POST)
        bank_account_form = BankAccountForm(instance=bank_account, data=request.POST)
        credit_card_form = CreditCardForm(instance=credit_card, data=request.POST)

        if shop.confirm_toc and ("confirm_toc" not in request.POST):
            toc = False
            if checkout_form.errors is None:
                checkout_form.errors = {}
            checkout_form.errors["confirm_toc"] = _(u"Please confirm our terms and conditions")
        else:
            toc = True

        if checkout_form.is_valid() and bank_account_form.is_valid() and iam.is_valid() and sam.is_valid() and toc:
            # Save addresses
            iam.save()

            # If there the shipping address is not given, the invoice address
            # is copied.
            if request.POST.get("no_shipping", "") == "":
                sam.save()
            else:
                if customer.selected_shipping_address:
                    customer.selected_shipping_address.delete()
                shipping_address = deepcopy(customer.selected_invoice_address)
                shipping_address.id = None
                shipping_address.save()
                customer.selected_shipping_address = shipping_address

            # Save payment method
            customer.selected_payment_method_id = request.POST.get("payment_method")

            # Save bank account
            if customer.selected_payment_method_id and \
               int(customer.selected_payment_method_id) == lfs.payment.settings.PM_BANK:
                customer.selected_bank_account = bank_account_form.save()

            # Save credit card
            if customer.selected_payment_method_id and \
               int(customer.selected_payment_method_id) == lfs.payment.settings.PM_CREDIT_CARD:
                customer.selected_credit_card = credit_card_form.save()

            customer.save()

            # process the payment method
            result = lfs.payment.utils.process_payment(request)

            if result["accepted"]:
                return HttpResponseRedirect(result.get("next_url", reverse("lfs_thank_you")))
            else:
                if "message" in result:
                    checkout_form._errors[result.get("message_location")] = result.get("message")

    else:
        checkout_form = OnePageCheckoutForm()
        iam = AddressManagement(customer, invoice_address, "invoice")
        sam = AddressManagement(customer, shipping_address, "shipping")
        bank_account_form = BankAccountForm(instance=bank_account)
        credit_card_form = CreditCardForm(instance=credit_card)

    # Payment
    try:
        selected_payment_method_id = request.POST.get("payment_method")
        selected_payment_method = PaymentMethod.objects.get(pk=selected_payment_method_id)
    except PaymentMethod.DoesNotExist:
        selected_payment_method = lfs.payment.utils.get_selected_payment_method(request)

    valid_payment_methods = lfs.payment.utils.get_valid_payment_methods(request)
    display_bank_account = any([pm.type == lfs.payment.settings.PM_BANK for pm in valid_payment_methods])
    display_credit_card = any([pm.type == lfs.payment.settings.PM_CREDIT_CARD for pm in valid_payment_methods])

    return render_to_response(template_name, RequestContext(request, {
        "checkout_form": checkout_form,
        "bank_account_form": bank_account_form,
        "credit_card_form": credit_card_form,
        "invoice_address_inline": iam.render(request),
        "shipping_address_inline": sam.render(request),
        "shipping_inline": shipping_inline(request),
        "payment_inline": payment_inline(request, bank_account_form),
        "selected_payment_method": selected_payment_method,
#.........这里部分代码省略.........
开发者ID:gootoomoon,项目名称:django-lfs,代码行数:103,代码来源:views.py

示例3: one_page_checkout

# 需要导入模块: from lfs.addresses.utils import AddressManagement [as 别名]
# 或者: from lfs.addresses.utils.AddressManagement import save [as 别名]
def one_page_checkout(request, template_name="lfs/checkout/one_page_checkout.html"):
    """
    One page checkout form.
    """
    OnePageCheckoutForm = lfs.core.utils.import_symbol(ONE_PAGE_CHECKOUT_FORM)

    cart = lfs.cart.utils.get_cart(request)
    if cart is None:
        return HttpResponseRedirect(reverse('lfs_cart'))

    initial_address = {}
    shop = lfs.core.utils.get_default_shop(request)
    if request.user.is_anonymous():
        if shop.checkout_type == CHECKOUT_TYPE_AUTH:
            return HttpResponseRedirect(reverse("lfs_checkout_login"))
    else:
        initial_address['email'] = request.user.email

    customer = lfs.customer.utils.get_or_create_customer(request)

    invoice_address = customer.selected_invoice_address
    shipping_address = customer.selected_shipping_address
    bank_account = customer.selected_bank_account
    credit_card = customer.selected_credit_card

    if request.method == "POST":
        checkout_form = OnePageCheckoutForm(data=request.POST)
        iam = AddressManagement(customer, invoice_address, "invoice", request.POST, initial=initial_address)
        sam = AddressManagement(customer, shipping_address, "shipping", request.POST, initial=initial_address)
        bank_account_form = BankAccountForm(instance=bank_account, data=request.POST)
        credit_card_form = CreditCardForm(instance=credit_card, data=request.POST, prefix="credit_card")

        if shop.confirm_toc and ("confirm_toc" not in request.POST):
            toc = False
            if checkout_form.errors is None:
                checkout_form._errors = {}
            checkout_form.errors["confirm_toc"] = _(u"Please confirm our terms and conditions")
        else:
            toc = True

        # Prevent checkout if voucher is not valid (any more)
        voucher_number = request.POST.get("voucher")
        if voucher_number:
            try:
                voucher = Voucher.objects.get(number=voucher_number)
            except Voucher.DoesNotExist:
                is_valid_voucher = False
            else:
                is_valid_voucher = voucher.is_effective(request, cart)[0]
        else:
            is_valid_voucher = True

        if is_valid_voucher and checkout_form.is_valid() and bank_account_form.is_valid() and iam.is_valid() and sam.is_valid() and toc:
            if CHECKOUT_NOT_REQUIRED_ADDRESS == 'shipping':
                iam.save()
                if request.POST.get("no_shipping", "") == "":
                    # If the shipping address is given then save it.
                    sam.save()
                else:
                    # If the shipping address is not given, the invoice address is copied.
                    if customer.selected_invoice_address:
                        if customer.selected_shipping_address:
                            # it might be possible that shipping and invoice addresses are same object
                            if customer.selected_shipping_address.pk != customer.selected_invoice_address.pk:
                                customer.selected_shipping_address.delete()
                        shipping_address = deepcopy(customer.selected_invoice_address)
                        shipping_address.id = None
                        shipping_address.pk = None
                        shipping_address.save()
                        customer.selected_shipping_address = shipping_address
            else:
                sam.save()
                if request.POST.get("no_invoice", "") == "":
                    iam.save()
                else:
                    if customer.selected_shipping_address:
                        if customer.selected_invoice_address:
                            # it might be possible that shipping and invoice addresses are same object
                            if customer.selected_invoice_address.pk != customer.selected_shipping_address.pk:
                                customer.selected_invoice_address.delete()
                        invoice_address = deepcopy(customer.selected_shipping_address)
                        invoice_address.id = None
                        invoice_address.pk = None
                        invoice_address.save()
                        customer.selected_invoice_address = invoice_address
            customer.sync_selected_to_default_addresses()

            # Save payment method
            customer.selected_payment_method_id = request.POST.get("payment_method")

            # Save bank account
            if customer.selected_payment_method_id and \
               int(customer.selected_payment_method_id) == lfs.payment.settings.PM_BANK:
                customer.selected_bank_account = bank_account_form.save()

            # Save credit card
            if customer.selected_payment_method_id and \
               int(customer.selected_payment_method_id) == lfs.payment.settings.PM_CREDIT_CARD:
                customer.selected_credit_card = credit_card_form.save()

#.........这里部分代码省略.........
开发者ID:diefenbach,项目名称:django-lfs,代码行数:103,代码来源:views.py


注:本文中的lfs.addresses.utils.AddressManagement.save方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。