我在Django中编写了一个函数来根据类型查找对象,类似于以下内容:
def lookup(modelType, item_id):
try:
return eval(modelType).objects.get(pk=item_id)
except ObjectDoesNotExist:
return None
如果存在ID为14的Course对象,则 lookup(Course, 14)
应返回Course.objects.get(pk=14)
。
写这个功能是否可行?谢谢。
答案 0 :(得分:4)
如果您想使用lookup(Course, 14)
,请执行此操作。
def lookup( the_model, item_id ):
try:
the_model.objects.get( pk=item_id )
except the_model.DoesNotExist:
return None
如果您想继续使用您编写的函数,则必须将模型作为字符串传递。
lookup( "Course", 14)
另外。 return None
是一个非常糟糕的主意。正确使用异常通常要好得多。