Доступ к объекту RelatedManager в django

У меня есть следующая модель :

class Travel(models.Model):
    purpose = models.CharField(max_length=250, null=True)
    amount = models.IntegerField()
class TravelSection(models.Model):
    travel = models.ForeignKey(Travel, related_name='sections', on_delete=models.CASCADE)
    isRoundTrip = models.BooleanField(default=True)
    distance = models.FloatField()
    transportation = models.CharField(max_length=250)

Я создаю объект без использования базы данных :

mytravel = Travel(
  purpose='teaching',
  amount=1
)
mysection = TravelSection(
  travel=mytravel,
  isRoundTrip=True,
  distance=500,
  transportation='train'
)

Когда я пытаюсь получить доступ к mytravel.sections, я не могу получить доступ к полю distance и другим полям. Как я могу сделать это без необходимости сохранения в базе данных? Я не хочу создавать объекты в базе данных, потому что я пытаюсь сделать некоторую предварительную обработку. Спасибо за помощь

Подумайте о Менеджере как о конструкторе запросов. Менеджеры не имеют доступа к отдельным значениям для каждого конкретного экземпляра, вы должны использовать методы RelatedManager для получения QuerySet, например mytravel.sections.all(). Отсюда у вас будет QuerySet, который вы можете итерационно просмотреть, чтобы получить каждую секцию mysection и получить доступ к расстоянию из нее.

RelatedManagers - это менеджеры, они просто имеют дополнительную функциональность. Это сбивает с толку, потому что существуют также QuerySets, которые похожи на Managers, за исключением того, что в них уже хранится запрос.

Вернуться на верх