我想要做的是能够使用模型的名称作为函数的输入,以便可以对指定的模型执行对象方法。例如:
from app.models import model1, model2
def select_all_from_model(model_name):
all = model_name.objects.all()
return all
all = select_all_from_model('model1')
all = model_name.objects.all()
是一个无意义的行。我需要有一个模型对象,而不是字符串名称,以便objects.all()
选择工作。如何根据字符串值model_name
?
答案 0 :(得分:4)
您可以使用models.get_model()函数:
>>> model_class = models.get_model('App', 'Model1')
>>> model_class.objects.all()
>>> [...]
如果您需要使用字符串。但是你可以在python中传递类。这是一个例子:
>>> from app.models import Model1
>>> select_all_from_model(Model1)
>>> [...]