映射存储过程中的列名,以映射到Django中的model / table / view中并在View / template中使用

时间:2018-09-10 20:12:06

标签: django-models django-views pyodbc django-mssql

我正在尝试利用回到模型之类的对象中的数据,这些数据可以在视图中返回并由Django模板使用。连接到SQL Server数据库并使用pyodbc。

这是我要获取数据的查询:

  results=cursor.fetchall()
  print(results)
  result_list = []
  for row in results:   
      print(row) # ('10000', 'Col2 Data', 'Col3', Decimal('1000.000'), None)
      print(row[0]) # 10000
      result_list.append(row)

结果:

[('10000', 'Col2 Data', 'Col3', Decimal('1000.000'), None), 
('10001', 'Col2 Data2', 'Col3', Decimal('1000.000'), None)]

是否有任何方法可以将其作为可直接在模板中使用的字典(键,值)对?我目前正在使用返回数据的定位。我想直接引用row.id而不是row [0],但是由于返回的数据未映射到任何Django模型(也不将其设置为数据库本身的表/视图),因此我不确定如何做到这一点。任何建议将不胜感激。

注意,我能够建立Django模型并获取返回的数据,从而将其映射到模型: return [ModelName(*row) for row in results],其中ModelName映射到表。问题是针对django中没有模型映射到数据库表的情况。

现在,循环遍历模板中的结果确实可以按预期显示数据,但是理想情况下,我宁愿不使用返回数据的顺序或位置进行映射。

0 个答案:

没有答案