Оптимальный дизайн модели для отслеживания исторических данных - PullRequest
0 голосов
/ 06 августа 2020

Как построить отношения между этими двумя моделями?

Company хранит данные о компании:

class Company(models.Model):
    """Company related data"""
    name = models.CharField(max_length=120)
    abbrev = models.CharField(max_length=5)
    founded = models.IntegerField(null=False)
    country = models.CharField(max_length=60)

Между тем StockQuote отслеживает историю цен акций:

class StockQuote(models.Model):
    """Price history"""
    fetch_date = models.DateField(default=timezone.now())
    business_day_date = models.DateField(default=timezone.now())
    price = models.CharField(max_length=8, default='0.00')

Учитывая, что каждой из StockQuote записей может быть назначена только одна Company, как эти модели должны быть связаны отношениями, чтобы было просто отображать все указанные цены, запрашивая только модель Company (Конечная точка API)?

1 Ответ

1 голос
/ 06 августа 2020

Как сказал Виллем Ван Онсем, вы просто создаете поле в StockQuote следующим образом:

class StockQuote(models.Model):
    """Price history"""
    company = models.ForeignKey(Company, on_delete=models.CASCADE)

Затем из объекта company вы можете просто выполнить company.stockquote_set.all(), чтобы получить QuerySet всего котировки акций, относящиеся к этой компании.

...