Как я могу получить объект из ForeignKey с датой после теперь в Django? - PullRequest
0 голосов
/ 28 февраля 2020

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

class Clients(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    address = models.CharField(max_length=200, verbose_name="Morada")
    nif = models.CharField(max_length=9, verbose_name="NIF", validators=[RegexValidator(r'^\d{1,10}$')], unique=True, null=True)
    mobile = models.CharField(max_length=9, verbose_name="Telemóvel", validators=[RegexValidator(r'^\d{1,10}$')])

class Flight(models.Model):
    date = models.DateTimeField(default=datetime.now, blank=True, verbose_name="Data")
    flight_id = models.CharField(max_length=10, verbose_name="Ref. Voo")
    company = models.ForeignKey(AirCompany, null=True, on_delete=models.SET_NULL, verbose_name="Companhia")
    airport = models.ForeignKey(Airport, null=True, on_delete=models.SET_NULL, verbose_name="Aeroporto")

class Trip(models.Model):
    trip_id = models.CharField(max_length=20, verbose_name="Ref. Viagem", primary_key=True)
    destination = models.CharField(max_length=200, null=True, verbose_name='Destino')
    client = models.ForeignKey(Clients, null=True, on_delete=models.CASCADE, verbose_name="Cliente")
    out_flight = models.ForeignKey(Flight, related_name="outbound_flight" ,null=True, on_delete=models.SET_NULL, verbose_name="Voo Ida")
    hotel = models.ForeignKey(Hotels, null=True, on_delete=models.SET_NULL, verbose_name="Hotel")
    in_flight = models.ForeignKey (Flight, related_name="inbound_flight", null=True, on_delete=models.SET_NULL, verbose_name="Voo Regresso")

Зная, что Flight и Clients являются ForeignKey в Trip, как я могу получить всех клиентов, у которых есть рейсы после этого?

Я использовал Going = Flight.objects.filter(date__gt=datetime.now()).order_by('date'), чтобы получить все рейсы, отправляющиеся после этого, но мне также нужно узнать, какие клиенты отправляются сейчас.

1 Ответ

0 голосов
/ 28 февраля 2020

Что насчёт этого,

from django.utils import timezone

Clients.objects.filter(trip__out_flight__date__gt=timezone.now())
...