Django表单-保留一些POST数据
我在写django网上商店,我遇到了一个问题。也就是说,我想打印的产品清单(我需要普鲁士)和一些表格购买他们在同一页上Django表单-保留一些POST数据,django,Django,我在写django网上商店,我遇到了一个问题。也就是说,我想打印的产品清单(我需要普鲁士)和一些表格购买他们在同一页上 def order(request): if request.method == 'POST': form = OrderForm(request.POST) if form.is_valid(): # POST data processing return HttpResponseRedi
def order(request):
if request.method == 'POST':
form = OrderForm(request.POST)
if form.is_valid():
# POST data processing
return HttpResponseRedirect('/cart/')
else:
form = OrderForm()
# here I would like to also use product_id from POST to generate products
# that have such id
return render(request, 'order.html', {
'form': form, 'products': products,
})
但当我错误地提交表单时,会调用OrderForm(),然后我会丢失id。
有没有解决这个问题的提示(可能是把id放在某个地方)
编辑:我的商店用于在给定时间租用某些产品,将产品添加到购物车意味着我创建了新的租赁对象,在用户保留产品时存储信息
型号:
class Rent(models.Model):
product = models.ForeignKey(Product)
paid = models.BooleanField()
begin_date = models.DateField(auto_now=False)
end_date = models.DateField(auto_now=False)
begin_hour = models.IntegerField(max_length=2, default=00)
end_hour = models.IntegerField(max_length=2, default=24)
和订单
class OrderForm(forms.Form):
begin_date = forms.DateField(label='date', required=True,
widget=extras.widgets.SelectDateWidget(years=range(2013, 2015)))
end_date = forms.DateField(required=True, initial=datetime.date.today,
widget=extras.widgets.SelectDateWidget(years=range(2013, 2015)))
begin_hour = forms.ChoiceField(required=True, choices=((str(x), x) for x in range(0, 25)))
end_hour = forms.ChoiceField(required=True, choices=(((str(x)), x) for x in range(0, 25)))
OrderForm
是否表示数据库中的对象?如果是,请发布表单定义和模型定义。我已经更新了我的问题。OrderForm间接表示数据库中的一个对象,在您的表单中,您从何处获得产品id?我看不出定义中的位置。通常表单保留其值,但我看到您的订单
中没有product id字段。可以使用跨请求保留自定义值。或者,您可以将产品id传递给渲染上下文,并手动将其分配给模板文件中表单的输入。@gat感谢您的帮助。我尝试了第二种方法,效果很好。也许它不太优雅,但它很管用。我还将尝试使用会话。再一次,非常感谢!!