django:将表单集数据传递到另一个视图

时间:2020-10-29 11:16:56

标签: python django

我的问题基于该帖子How to pass data between django views。我正在尝试做类似的事情,即使用在视图1中输入的数据到视图2中。

但是,挑战在于使用表单集,我需要访问多行数据输入,而不仅仅是访问值。我不知道该怎么实现

这是我到目前为止的内容: 视图1:

def New_Sales(request):
    #context = {}
    form = modelformset_factory(historical_recent_data, fields=('Id', 'Date','Quantity', 'NetAmount', 'customer_name'))
    
    
    if request.method == 'GET':
        formset = form(queryset= historical_recent_data.objects.none())
        #blank_form = formset.empty_form
    elif request.method == 'POST':
        formset = form(request.POST)
        #blank_form = formset.empty_form
        if formset.is_valid():
            request.session['sale'] = request.POST['sale']  
            
            
            
            
            
            for check_form in formset:
                check_form.save()
            
                quantity = check_form.cleaned_data.get('Quantity')
                id = check_form.cleaned_data.get('Id')
                update = replenishment.objects.filter(Id = id).update(StockOnHand = F('StockOnHand') - quantity)
                update2 = Item2.objects.filter(reference = id).update(stock_reel = F('stock_reel') - quantity)
                
            
            
        
            return redirect('/dash22.html') 
    
  
    
    return render(request, 'new_sale.html', {'formset':formset})

并查看2:

def invoice_view(request):
    request = request.session.get('sale'))

#... i need to get each row of the formset from the above view

#and  I am stuck!!

我希望有人能找到解决方案,但我在Django文档中找不到任何有关此的信息。

1 个答案:

答案 0 :(得分:0)

好吧,我不知道我对您的问题是否理解很好,但是,我会尽力回答您。 您可以通过2种不同的方式来实现。一种是在前端发送带有帖子的值(HTML表单或AJAX POST)。如果您想从后端进行操作,则可以向该方法添加更多的args并传递值(或整个表单集),例如:

def invoice_view(request, val1=None, val2=None):
    print(val1)
    request = request.session.get('sale'))

然后您可以从另一个视图调用它,就像普通的函数一样:

invoice_view(request, "asd", "asd2")
相关问题