Вам нужно создать класс, но вы не должны позволить Django ORM управлять им посредством миграций. Вы можете сделать это, добавив мета-опцию managed = False
[ документы ].
Чтобы сэкономить время и головные боли, Django предлагает команду управления inspectdb
[ документы ], который выведет определение класса для вас, включая все поля, найденные в базе данных.
python manage.py inspectdb [table_name]
Затем вы можете использовать это и установить мета-опцию (I верю, что по умолчанию managed = False
, хотя). Это будет выглядеть примерно так:
class Customer(models.Model):
id = models.IntegerField(db_column='ID', primary_key=True) # Field name made lowercase.
age = models.IntegerField(...)
name = models.CharField(...)
date_joined = models.DateField(...)
class Meta:
managed = False
db_table = 'someTableName'
Теперь вы можете импортировать класс и запустить:
customers = Customer.objects.filter(age__gte=25)