Есть несколько способов сделать это.Возможно, самое простое - создать представление базы данных, а затем инкапсулировать его, используя модель django.Вы можете создать представление, например, в консоли базы данных:
CREATE VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];
Как только вы это сделаете, вы можете ссылаться на представление в django следующим образом:
class FeaturedProduct(modes.Model):
attr1 = models.CharField()
class Meta:
managed = False
db_table = '<name of your view here>'
Убедитесь, что managed
установлен на False
.Вот соответствующая документация для этого.Вы хотите сделать это, потому что django не создает эту модель для вас, а вы создаете ее самостоятельно.
Другой способ сделать это - создать пользовательский Manager
.Эти менеджеры позволяют вам изменять атрибут objects
вашей модели, позволяя вам установить требуемый набор запросов.Я думаю, что вы захотите взглянуть на документацию Manager и посмотреть на определение пользовательских наборов запросов для ваших объектов .