Многие атрибуты в manyTomanyField не имеют атрибута .all() |Help needed Beginner|
Я создал модель с именем Flight, которая связана с другой моделью с именем Passengers
flights = models.ManyToManyField(Flight, blank=True, related_name="passengers")
я попытался использовать Passengers = Flight.Passengers.all() он выдает ошибку, говоря, что
Traceback (most recent call last): File "<console>", line 1, in <module> AttributeError: 'ManyToManyDescriptor' object has no attribute 'all'
нужна помощь!
я хочу, чтобы в моем html были только реализованные поля из рейса и пассажиров, но он выдает ошибку при попытке доступа с помощью Flight.Passengers.all() и Flight.Passengers.get()
можно обойти с помощью Passengers.objects.all(), но мне это не нужно, иначе не будет связи между моими базами данных!
Это имеет смысл, related_name работает с Flight объектом, а не с Flight классом, что бы это вообще значило?
Таким образом, вы получаете объект Flight:
my_flight = Flight.objects.get(pk=1) # Flight object with pk=1
и затем вы получаете пассажиров my_flight с:
my_flight.passengers.all()
Это не работает с Flight классом, единственным разумным ответом для этого было бы возвращение всех Passenger, у которых есть хотя бы один рейс. Это можно сделать с помощью:
# Passengers linked to at least one Flight
Passenger.objects.filter(flights__isnull=False).distinct()