直接从数据库中获取Django模型的表名

时间:2012-05-01 05:41:36

标签: django django-models

我需要为特定应用的所有模型检索表名和模型的contenttype id。我可以使用此代码获取模型的表名,但其contenttype id:

from django.db.models import get_app, get_models
app = get_app("my_app_name")
for model in get_models(app, include_auto_created=True):
    print model._meta.db_table

但是我需要直接从数据库中获取此信息。类似的东西:

Select id, model from django_content_type where app_label='my_app_name'

在这种情况下,我得到id而不是表名。在第二种情况下从哪里获取表名?

1 个答案:

答案 0 :(得分:1)

获取模型的内容类型的pk

from django.contrib.contenttypes.models import ContentType
ContentType.objects.get_for_model(model).pk

run standalone Django script,参考posts或简单(通常有效)

DJANGO_SETTINGS_MODULE='project.settings' python script.py