Django Ecommerce中的Checkout表单

问题描述

我想访问在第一个结帐表单中保存的所有字段值以第二个确认表单。我想创建类似两步的确认,但是我无法做到这一点。

注意:函数应同时处理真实用户和匿名用户。

具有客户所有信息字段的第一个结帐表格:

def checkout(request):
    if request.user.is_authenticated:
        form = CheckoutForm(instance=request.user)
        if request.method == 'POST':
            #Auto fill instance info in form
            form = CheckoutForm(request.POST,instance=request.user)
            if form.is_valid():
                form.save()
            return redirect('checkout:confirm')  #Redirects to page whose function_view is order_confirm
    else:
        form = CheckoutForm()
        if request.method == 'POST':
            form = CheckoutForm(request.POST)
            if form.is_valid():
                form.save()
            return redirect('checkout:confirm')
    context = {
        'order': order_obj,'form': form
    } 

    return render(request,'checkout/place_order.html',context)

第二页显示第一个结帐表单中的信息以进行确认:

def order_confirm(request):
    billing_profile = BillingProfile.objects.get(user=request.user)
    return render(request,'checkout/order_confirm.html',{'obj': billing_profile})

以防万一的表单模型

class BillingProfile(models.Model):
    user = models.ForeignKey(USER,on_delete=models.SET_NULL,null=True,blank=True)
    full_name = models.CharField(max_length=100)
    email = models.EmailField()
    phone_num = models.CharField(max_length=15)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=50)
    active = models.BooleanField(default=True)
    date_created = models.DateTimeField(auto_now_add=True)
    date_updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        if self.user:
            return str(self.user)
        else:
            return self.full_name

如何访问order_confirm函数中从表单提交的所有字段。

我的问题是,无论该用户是经过身份验证还是匿名的,我都无法通过order_confirm函数访问当前用户。

我在/ checkout / confirm'AnonymousUser'对象不可迭代时遇到类似 TypeError的错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...