Python-модель django не извлекает имя таблицы, возвращая вместо этого имя проекта
Я создал проект django и проект python. структура директорий такова
analysis
db_router
models
settings
urls
wsgi
settings
compareTemplates
apps
models
tests
utils
views
Моя модель выглядит следующим образом
class Plans(models.Model):
PROJECT_NAME = models.TextField()
class Meta:
db_table = 'schema.table' # specify the schema and table name
managed = False # Prevent Django from managing the table schema
def __str__(self):
return self.PROJECT_NAME
Я правильно настроил базу данных в файле настроек и пытаюсь проверить, может ли моя модель подключиться к ней
I ran:
python manage.py shell
from compareTemplate.models import Plans
print(Plans._meta.db_table)
возвращается значение «compareTemplate_plans» Я не ожидал этого, я искал «schema.Table»
Это мое первое настоящее приложение на django, но я не могу понять, почему результатом является имя проекта.
Спасибо
Вам нужно определить Meta
класс внутри модели Plans
, так:
class Plans(models.Model):
PROJECT_NAME = models.TextField()
class Meta: # 🖘 inside the Plans class
db_table = 'schema.table' # specify the schema and table name
managed = False # Prevent Django from managing the table schema
def __str__(self):
return self.PROJECT_NAME
Note: Normally a Django model is given a singular name [django-antipatterns], so
Plan
instead of.Plans