我想找回Model
對象,而知道table_name的檢索用表名
對於離Model對象:
class User(models.Model):
class Meta:
db_table = 'my_users_table'
是否有采取my_users_table
作爲輸入返回User
方式?
我想找回Model
對象,而知道table_name的檢索用表名
對於離Model對象:
class User(models.Model):
class Meta:
db_table = 'my_users_table'
是否有采取my_users_table
作爲輸入返回User
方式?
我想找回
Model
對象
我想你在這裏的意思是Model類而不是對象。我能想到的
一個可能的解決方案是讓所有的模型和匹配db_table
:
from django.apps import apps
model = next((m for m in apps.get_models() if m._meta.db_table=='my_users_table'), None)
如果給定db_table名稱的模型,則model
會None
。
我不認爲有直接的方法來做到這一點。但是你可以創建你自己的功能,這將爲你做到這一點。基於https://stackoverflow.com/a/29739109/3627387
from django.apps import apps
def get_model_by_db_table(db_table):
for model in apps.get_models():
if model._meta.db_table == db_table:
return model
else:
# here you can do fallback logic if no model with db_table found
raise ValueError('No model found with db_table {}!'.format(db_table))
# or return None
或者你也可以做到這一點使用ContentType模型