Я бы сделал так, чтобы просто пройти через объект «а» в классе B. Итак, в представлении я бы сделал:
objects = B.objects.get(user=a.user)
objects += A.objects.get(user=user)
Причина, по которой я бы сделал это таким образом, заключается в том, что это, по сути, два запроса к базе данных, один для получения группы объектов A и один для получения группы объектов B. Я не уверен, что в Django можно получить список обоих, просто из-за того, как работает наследование базы данных.
Вы также можете использовать наследование модели . Это будет создание базового класса для обоих объектов A и B, который содержит общие поля, а затем получение списка базовых классов и преобразование их в надлежащие типы.
Редактировать: В ответ на ваш комментарий я предлагаю создать базовый класс, содержащий эту строку:
user = models.ForeignKey(User)
Классы A и B могут затем наследоваться от этого базового класса, и теперь вы можете просто получить все объекты из этого класса. Скажем, ваш базовый класс назывался «C»:
objects = C.objects.get(user=user)
Это позволит получить все C, и затем вы сможете выяснить их конкретные типы, пройдя каждый объект в объектах и определив их тип:
for object in objects:
if object.A:
#code
if object.B:
#code