为查询集的下标元素赋值不会产生任何特殊符号或引号

2024-10-01 13:46:15 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:事实证明我不知道;我不相信迁移与造成这个错误有关

在下面的代码中,我选择聚合值并将这些值赋回到使用模型中,我发现自从我将应用程序从django dev server迁移到apache之后,这些值就没有被赋值

我的调试输出显示,在分配了这些值之后,该值从未实际应用到模型实例,并且当稍后执行保存时,这也反映了模型实例中仍然保留了零

python代码

    cursor.execute("""select CUSTNBR,
                             FROMDATE,
                             sum(DECTHERMS) as DECTHERMS,
                             max(PRICE) as PRICE,
                             sum(SALESDLRS) as SALESDLRS,
                             sum(MCFS) as MCFS
                    from LQPPNATGAS
                    where CUSTNBR = ? and 
                          FROMDATE <> '20000000' 
                    group by CUSTNBR, FROMDATE """,str(cust_number))


    row = cursor.fetchone()
    while row:
        if str(row.FROMDATE)[0:4] >= str(oldest_year): 

            b = Usage.objects.filter(user_id=user_id,from_date=row.FROMDATE)

            b[0].decatherms = row.DECTHERMS
            b[0].price = row.PRICE
            b[0].sales_dollars = row.SALESDLRS
            b[0].mcf = row.MCFS
            b[0].save(update_fields=['decatherms','price','sales_dollars','mcf'])

            print >> sys.stderr ,str(b[0].sales_dollars)+"="+str(row.SALESDLRS)


        row = cursor.fetchone()

error.log中的输出

[Thu Aug 29 07:47:15 2013] [error] 0.00=168.22
[Thu Aug 29 07:47:15 2013] [error] 0.00=16.78
[Thu Aug 29 07:47:15 2013] [error] 0.00=1107.88
[Thu Aug 29 07:47:15 2013] [error] 0.00=676.85
[Thu Aug 29 07:47:15 2013] [error] 0.00=28.38
[Thu Aug 29 07:47:15 2013] [error] 0.00=876.94
[Thu Aug 29 07:47:15 2013] [error] 0.00=833.21
[Thu Aug 29 07:47:15 2013] [error] 0.00=26.33
[Thu Aug 29 07:47:15 2013] [error] 0.00=130.85
[Thu Aug 29 07:47:15 2013] [error] 0.00=1058.53

Tags: 模型aserrorpricecursoraugrowsum
1条回答
网友
1楼 · 发布于 2024-10-01 13:46:15

我通过将列表的[0]元素赋给另一个变量b,然后对该变量执行操作,而不是在执行操作时指定[0],解决了这个问题

修改的python代码

   cursor.execute("""select CUSTNBR,
                             FROMDATE,
                             sum(DECTHERMS) as DECTHERMS,
                             max(PRICE) as PRICE,
                             sum(SALESDLRS) as SALESDLRS,
                             sum(MCFS) as MCFS
                    from LQPPNATGAS
                    where CUSTNBR = ? and 
                          FROMDATE <> '20000000' 
                    group by CUSTNBR, FROMDATE """,str(cust_number))


    row = cursor.fetchone()
    while row:
        if str(row.FROMDATE)[0:4] >= str(oldest_year):

            b = Usage.objects.filter(user_id=user_id,from_date=row.FROMDATE)[0]

            print >> sys.stderr , "before b.decatherms="+str(b.decatherms)

            b.decatherms = row.DECTHERMS
            b.price = row.PRICE
            b.sales_dollars = row.SALESDLRS
            b.mcf = row.MCFS
            b.save() #(update_fields=['decatherms','price','sales_dollars','mcf'])

            print >> sys.stderr , "after b.decatherms="+str(b.decatherms)

        row = cursor.fetchone()

error.log中的输出

[Fri Aug 30 10:37:28 2013] [error] before b.decatherms=0.0
[Fri Aug 30 10:37:28 2013] [error] after b.decatherms=44.9
[Fri Aug 30 10:37:28 2013] [error] before b.decatherms=0.0
[Fri Aug 30 10:37:28 2013] [error] after b.decatherms=91.1
[Fri Aug 30 10:37:28 2013] [error] before b.decatherms=0.0
[Fri Aug 30 10:37:28 2013] [error] after b.decatherms=3.8
[Fri Aug 30 10:37:28 2013] [error] before b.decatherms=0.0
[Fri Aug 30 10:37:28 2013] [error] after b.decatherms=2.9
[Fri Aug 30 10:37:28 2013] [error] before b.decatherms=0.0
[Fri Aug 30 10:37:28 2013] [error] after b.decatherms=11.8

相关问题 更多 >