Django表单-保留一些POST数据

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

我在写django网上商店,我遇到了一个问题。也就是说,我想打印的产品清单(我需要普鲁士)和一些表格购买他们在同一页上

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感谢您的帮助。我尝试了第二种方法,效果很好。也许它不太优雅,但它很管用。我还将尝试使用会话。再一次,非常感谢!!