@bituke

Как получить все данные объекта в django в шаблонизаторе?

Доброго времени суток.
Задача следующая:

Имеется модель клиента:
class Client(models.Model):
	name = models.CharField(max_length=255)

Имеется модель портфеля:
class Portfolio(models.Model):
	client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='portfolio')
	name = models.CharField('название', max_length=255)

Имеется модель акции, которая связана с портфелем.
class Stock(models.Model):
	portfolio = models.ForeignKey(Portfolio, on_delete=models.CASCADE, related_name='stock')
	name = models.CharField(max_length=255, blank=True)
	ticker = models.ForeignKey(Ticker, on_delete=models.CASCADE, related_name='ticker')

Ну и конечно есть модель тикера, с которой связана акция.
class Ticker(models.Model):
	name = models.CharField(max_length=255)

С моделью тикера, связана модель ТикерВалуе:
class TickerValue(models.Model):
	ticker = models.ForeignKey(Ticker, on_delete=models.CASCADE, related_name='ticker_value')
	date = models.DateField()
	closing_cost = models.FloatField()

Задача следующая:
Есть цикл шаблонизатора джанго, который выводит всех клиентов:
{% for i in clients %}
    {{ i.name }}
{% endfor %}

И в этом цикле, нужно вывести сумму всех TickerValue.closing_cost за последний день, которые принадлежит тикеру, который принадлежит акции, которая принадлежит портфелю, который принадлежит клиенту в цикле.
Интересуют любые способы решения данной задачи. Буду бесконечно благодарен, если дадите направление, куда можно копать, пробовал писать функции под моделью - не получалось фильтровать обьекты. Заранее огромное спасибо.
  • Вопрос задан
  • 33 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
{% for client in clients %}
    {% for portfolio in client.portfolio_set.all %}
        {% for stock in portfolio.stock_set.all %}
             {% for ticker_value in stock.ticker.tickervalue_set.all %}
                  {{ ticker_value.closing_cost }}
             {% endfor %}
        {% endfor %}
    {% endfor %}
{% endfor %}

Вам стоит изучить и другие типы отношений, кроме внешнего ключа.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы