【发布时间】:2020-04-21 07:12:20
【问题描述】:
我正在尝试使用 Django 开发电子商务网站。所以我在这一点上,用户可以将商品添加到他们的购物车,继续结帐,但由于某种原因,我的结帐表单没有被保存。
我确保我已经注册了我的模型并运行了迁移,但每次我填写表单并查看我的管理面板时,它都会显示:0 个用户地址。有什么问题?
我的意见.py:
@login_required()
def checkout(request):
address_form = UserAddressForm(request.POST or None)
if address_form.is_valid():
new_address = address_form.save(commit= False)
new_address.user = request.user
new_address.save()
return HttpResponseRedirect('/')
else:
raise Http404
context = {"address_form": address_form}
template = "orders/checkout.html"
return render(request, template, context)
我的 checkout.html:
<form method="POST" action="{% url 'ajax_add_user_address' %}?redirect=checkout">
{% csrf_token %}
<fieldset class="form-group">
{{ address_form|crispy }}
</fieldset>
<div class="form-group">
<input type="submit" class="btn btn-outline-dark" value="Place Order"/>
</div>
</form>
我的 urls.py:
from orders import views as orders_views
path('checkout/', orders_views.checkout, name='checkout'),
【问题讨论】:
-
address_form.is_valid()是否返回 True?请检查。 -
与您的问题不完全相关,但您应该始终在提交表单后进行重定向。换句话说,您的
if块中应该有一个redirect(...)。 -
好的,我正在添加它们(编辑)
-
是的,现在它说 Http4040
-
但是为什么我的表格无效?