怎样动态地找到Django中的models
文章目录
囧书面试的过程中,面试官GG提出这样一个问题
- 在DRY原则的驱动下,一直写ModelName.objects.filter(something)是很不科学的,怎样避免这样一个问题,可以根据传入的字符串找到这个model
听到这个问题的时候我还一直以为是个django问题,拼命的回想有没有这样一种工具类能够根据model名找到model
最后想了一下,这大概是个Python问题而不是django问题
结束面试的时间是14:08,半个小时内大概想到了这样几种办法
0x00:处理好字符串后使用eval函数
0x01:globals()返回的是命名空间中所有的对象字典,可以使用globals()[“ModelName”]
0x02:views中处理models的部分单独出来,在另外文件中from app.models import *,同时在这个文件中设置一个字典,key为ModelName的字符串,value为这个class,定义函数返回这个class
|
|
(未测试能否可行)