如何在 Django 中从现在之后的日期从 ForeignKey 获取对象?
How can I fetch object from ForeignKey with date after now in Django?
我有以下型号:
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
都是 Trip
中的外键,我如何才能获取所有现在有航班的客户?
我使用 Going = Flight.objects.filter(date__gt=datetime.now()).order_by('date')
获取了现在之后起飞的所有航班,但我还需要了解现在有哪些客户。
这个呢,
from django.utils import timezone
Clients.objects.filter(trip__out_flight__date__gt=timezone.now())
我有以下型号:
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
都是 Trip
中的外键,我如何才能获取所有现在有航班的客户?
我使用 Going = Flight.objects.filter(date__gt=datetime.now()).order_by('date')
获取了现在之后起飞的所有航班,但我还需要了解现在有哪些客户。
这个呢,
from django.utils import timezone
Clients.objects.filter(trip__out_flight__date__gt=timezone.now())