为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕少森 2021-09-14 17:33:35
我在一个应用程序中有很多模型。我需要根据相应的值迭代它们。例如:for x in dictionary:     h = x.get() #line to get value from dictionary      q = h.objects.get(user=name)其中 h 是模型的字符串变量名称, q 是所需的查询集
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您必须创建额外的字典,将可能的输入字符串映射到实际的模型类,例如,您想查询用户模型中的字符串“user”。所以你创建了models_mapping = {'user': User}。然后在循环中,你可以写


model = models_mapping[h] 

q = model.objects.get(user=name)

不太清楚您在该字典中有什么以及 x.get() 是什么,但希望这会引导您朝着正确的方向前进。


查看完整回答
反对 回复 2021-09-14
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

get_modeldjango 中提供了一种方法可以实现这一点。它可以按如下方式使用:

def get_model(self, app_label, model_name, seed_cache=True):


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号