0

我有一个函数可以计算数据库中的数据总和(它不是一个简单的总和,每次都会增加一个数字)。它是在视图中计算的,我需要将它们传递给模板。我将它存储在字典中portfolio_dict[year] += amount

{'2013': Decimal('92.96892879384746351465539182'), '2012': Decimal('71.48765907571338816005401399')}

但我也需要一些额外的数据来发送。比方说:

date:date
amount:Decimal
year:string

我知道也有年份和日期听起来有点愚蠢。我使用年份作为索引。如何将这些数据传递给模板/将日期添加到我当前的字典?但是现在,我总是有 Model 并且我传递了该模型实例的列表。但是现在我不需要将这些数据存储在数据库中,所以我不想创建模型。如果我不希望它在数据库中,我在哪里可以在 django 中创建新类?或者我应该使用集合还是数据结构?

4

1 回答 1

1

只有django.db.Model实例存储在数据库中(并且仅当您明确要求时)。否则,这只是普通的旧 Python,您可以根据需要创建和使用自己的类。

但无论如何:如果您只需要一个按年份索引的(日期,金额)项目集合,那么一个 dicts 就足够了:

{
   '2013': {
      'amount': Decimal('92.96892879384746351465539182'), 
      'date': datetime.date(2013, 10, 25)
      },
   # etc
}

或者,如果您每年需要多个(数量、日期),则需要一个带有列表或字典的字典:

{
   '2013': [
      {
        'amount': Decimal('92.96892879384746351465539182'), 
        'date': datetime.date(2013, 10, 25)
      },
      {
        'amount': Decimal('29.9689287'), 
        'date': datetime.date(2013, 10, 21)
      },
    ],

   # etc
}

事实上,正确的结构取决于您将如何使用数据。

于 2013-10-25T07:05:49.600 回答