问题描述
我想访问在第一个结帐表单中保存的所有字段值以第二个确认表单。我想创建类似两步的确认,但是我无法做到这一点。
注意:函数应同时处理真实用户和匿名用户。
具有客户所有信息字段的第一个结帐表格:
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 (将#修改为@)