是否可以使用变量作为模型名称来查询数据库?

我在一个应用程序中有很多模型。我需要根据相应的值迭代它们。例如:

for x in dictionary:
    h = x.get() #line to get value from dictionary 
    q = h.objects.get(user=name)

其中 h 是模型的字符串变量名称, q 是所需的查询集


慕少森
浏览 200回答 2
2回答

互换的青春

您必须创建额外的字典,将可能的输入字符串映射到实际的模型类,例如,您想查询用户模型中的字符串“user”。所以你创建了models_mapping = {'user': User}。然后在循环中,你可以写model = models_mapping[h] q = model.objects.get(user=name)不太清楚您在该字典中有什么以及 x.get() 是什么,但希望这会引导您朝着正确的方向前进。

慕尼黑的夜晚无繁华

get_modeldjango 中提供了一种方法可以实现这一点。它可以按如下方式使用:def get_model(self, app_label, model_name, seed_cache=True):
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python