Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django模板表单提交中的某些内容导致会话数据丢失_Python_Django_Django Templates - Fatal编程技术网

Python django模板表单提交中的某些内容导致会话数据丢失

Python django模板表单提交中的某些内容导致会话数据丢失,python,django,django-templates,Python,Django,Django Templates,我有一个模板,用户在其中进行搜索,图形和数据进入页面。根据用户输入的查询值,我需要在会话中将其传递给另一个模板,但数据传输不起作用,因为在执行查询时查询被重置 以下是视图的外观: @method_decorator(login_required, name='dispatch') class SupplierPage2(LoginRequiredMixin,APIView): def get(self, request, *args, **kwargs): query =

我有一个模板,用户在其中进行搜索,图形和数据进入页面。根据用户输入的查询值,我需要在会话中将其传递给另一个模板,但数据传输不起作用,因为在执行查询时查询被重置

以下是视图的外观:

@method_decorator(login_required, name='dispatch')
class SupplierPage2(LoginRequiredMixin,APIView):
    def get(self, request, *args, **kwargs):
        query = request.GET.get('search_ress', None)
        print(query)
        context = {}

        #if query and request.method == 'GET':
        Supplier = supplier2.objects.filter(supplier = query)
        
       
        labels = Item2.objects.filter(fournisseur = query).values_list('reference', flat=True)[:10]
        labels = list(labels)
        default_items = Item2.objects.filter(fournisseur = query).values_list('number_of_sales', flat=True)[:10]
        default_items = list(default_items)
        label1s = Item2.objects.filter(fournisseur = query).values_list('reference', flat=True)[:10]
        label1s = list(label1s)
        default_item1s = Item2.objects.filter(fournisseur = query).values_list('number_of_orders_placed', flat=True)[:10]
        
        default_items1s = list(default_item1s)
            
        context.update({'Supplier' : Supplier, 'labels':labels, 'default_items':default_items,'label1s':label1s, 'default_item1s':default_item1s})
        context2 = {'query':query}
        print("context",context2)
        request.session['query_dict'] = context2
        

        return render(request, 'Supplier2.html',context)
下面是我在试图查询“BOLSEI”时在日志中得到的信息:

BOLSEI
context {'query': 'BOLSEI'}
start 2020-11-11 14:32:10.714716
start 2020-11-11 14:32:10.715460
None
context {'query': None}
start 2020-11-11 14:32:20.765804
start 2020-11-11 14:32:20.766572
supplier name {'query': None}
它在第一次工作时,因为查询包含一个值和所有值,但在呈现数据时,似乎有些内容得到了更新,查询值变成了
None
。我的猜测是,一旦查询被传递,就会发生刷新,但我不理解是什么导致了它的发生,并且没有适当的错误被记录在任何地方。有线索吗

更新:由于我仍然无法确定问题来自何处,我开始深入研究我的模板代码,怀疑它可能来自我的ajax请求,导致了一个bug(尽管日志中没有显示任何内容)

以下是我所拥有的:

<script>
             $(document).ready(function() {
                 var endpoint = 'Supplier2.html'
                 
            
                 
                 var default_items = []
                 var labels = []

                 var default_item1s = []
                 var label1s = []
                 


                 ;

                 $.ajax({
                         method: "GET",
                         url: endpoint,
                         success: function (data) {

                             labels = data.labels
                             default_items = data.default_items

                             label1s = data.label1s
                             default_item1s = data.default_item1s
                             
                             


                             setChart()
                         },
                         error: function (error_data) {

                             console.log(error_data)
                         }
                     }
                 )

 function setChart(){
                    
                    var ctx4 = document.getElementById('myChart4').getContext('2d');

                   var myChart4 = new Chart(ctx4, {
                        type: 'bar',
                        data: {
                            labels: label1s,
                            datasets: [{
                                label: document.getElementById('tag4').textContent == 'ITEMS WITH HIGHEST NUMBER OF REPLENISHMENTS (3 MONTHS)'? 'references with most replenishments':
                                'références avec nombre de réapprovisionnement élevé',
                                data: default_item1s,
                              
                                backgroundColor: [
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)',
                                  
                                  
                                 
                                  
         
                                ],
                                borderColor: [
                                   'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)', 
                                  'rgba(233,48,48)',
                                  
                                  


                                ],
                                borderWidth: 1
                            }]
                        },
                            options: {
                                scales: {
                                    yAxes: [{
                                      scaleLabel: {
                                        display: true,
                                        labelString: document.getElementById('tag4').textContent == 'ITEMS WITH HIGHEST NUMBER OF REPLENISHMENTS (3 MONTHS)'? 'number of replenishment' : 'nombre de reapprovisionnement'
                                          },
                                        gridLines: {
                                            drawOnChartArea: false,
                                          ticks: {
                                            beginAtZero: true
                                        }

                                            }
                                    }],
                                }
                            
                        }
                    })

                
 }
}
)

</script>


$(文档).ready(函数(){
var endpoint='Supplier2.html'
var default_items=[]
变量标签=[]
var default_item1s=[]
变量label1s=[]
;
$.ajax({
方法:“获取”,
url:endpoint,
成功:功能(数据){
labels=data.labels
默认\u项=数据。默认\u项
label1s=data.label1s
default\u item1s=data.default\u item1s
设定图()
},
错误:函数(错误\u数据){
console.log(错误\u数据)
}
}
)
函数集图表(){
var ctx4=document.getElementById('myChart4').getContext('2d');
var myChart4=新图表(ctx4{
类型:'bar',
数据:{
标签:label1s,
数据集:[{
标签:document.getElementById('tag4')。textContent=='补足次数最多的项目(3个月)''补足次数最多的引用':
“références avec nombre de réapprovisionnementélevé”,
数据:默认_item1s,
背景颜色:[
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
],
边框颜色:[
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
"rgba(233,48,48)",,
],
边框宽度:1
}]
},
选项:{
比例:{
雅克斯:[{
scaleLabel:{
显示:对,
标签字符串:document.getElementById('tag4')。textContent=='补货次数最多(3个月)'补货次数':'重新补货的名称'
},
网格线:{
drawOnChartArea:错误,
滴答声:{
贝吉纳泽罗:是的
}
}
}],
}
}
})
}
}
)
老实说,在这一点上,我是一种的东西来尝试