django:使用字符串选择特定模型

时间:2013-02-01 17:07:06

标签: django

我想要做的是能够使用模型的名称作为函数的输入,以便可以对指定的模型执行对象方法。例如:

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

加载模型对象

1 个答案:

答案 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)
>>> [...]