如何解决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 举报,一经查实,本站将立刻删除。