Как получить данные из базы данных mongodb без моделей в django?
Моя проблема в том, что моя база данных слишком велика, и я не хочу создавать никаких моделей
поскольку он унаследован, и мне придется динамически вызывать различные таблицы,
поэтому я просто хочу получить данные из него. Возможно ли это в Django?
Вместо того, чтобы использовать Django ORM для выполнения запросов, вы можете использовать SQL, с курсором подключения.
Как видно из следующего примера кода:
from django.db import connection
def custom_sql(self):
cursor = connection.cursor()
cursor.execute("SELECT * FROM legacy_table where id=1") # or another SQL
row = cursor.fetchall()
return row
Но, если вы хотите использовать Django ORM, вам нужно создать модель с опцией Meta managed=False
, как в следующем примере:
class LegacyTableModel(models.Model):
# fields
class Meta:
managed = False
При managed=False
для этой модели не будут выполняться операции по созданию, изменению или удалению таблиц базы данных. Это полезно, если модель представляет существующую таблицу или представление базы данных, которое было создано другим способом. Документация