Многие атрибуты в 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()