Временной ряд как модель Django - PullRequest
0 голосов
/ 29 января 2020

Я довольно новичок в Django и его Rest Framework. У меня есть API (третье лицо), которые выводят этот pandas dataframe. Я понимаю, что я должен сделать отношения «многие к одному» для своих моделей. Первая модель - это просто список всех акций, а вторая модель должна содержать историю цен (связана с внешним ключом). Как мне смоделировать вторую таблицу для хранения этих данных?

Date
2019-12-30    291.519989
2019-12-31    293.649994
2020-01-02    300.350006
2020-01-03    297.429993
2020-01-06    299.799988
2020-01-07    298.390015
2020-01-08    303.190002
2020-01-09    309.630005
2020-01-10    310.329987

1 Ответ

2 голосов
/ 29 января 2020

Предполагая, что ваша первая модель называется Stock, вторая (назовем ее PriceHistory) нуждается в ForeignKey-отношении к ней. Для хранения ваших данных я бы взял DateField и DecimalField для ваших заданных значений.

Полученная модель будет выглядеть следующим образом:

# models.py

class Stock(models.Model):
    ...


class PriceHistory(models.Model):
    stock = models.ForeignKey(
        Stock,
        on_delete=models.CASCADE,
        related_name='price_histories',
    )
    date = models.DateField()
    price = models.DecimalField(
        decimal_places=6,
        max_digits=9,
    )

Если вам нужен только один price на date на stock, вам нужно добавить unique_together -ограничение к PriceHistory, например: unique_together = ['stock', 'date', 'price'].

...