3

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

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

4

1 回答 1

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)
>>> [...]
于 2013-02-01T17:12:58.877 回答